Je voudrais placer des scripts Scala dans un fichier batch. Si vous imprimez simplement les arguments, la manière canonique serait comme ceci:Passage des arguments avec des parenthèses au script Scala contenu dans le fichier de commandes Windows
::#!
@echo off
scala %0 %*
goto :eof
::!#
args foreach println
(Cela appelle en fait un autre script batch, scala.bat du bac-répertoire de Scala). Si je tente de passer un argument contenant entre parenthèses à elle, les fenêtres interpréteur de ligne de commande se plaint d'une erreur de syntaxe:
printargs.bat "foo(bar)baz"
Étrangement, si je crée un fichier scala printargs.scala
contenant juste args foreach println
, cela fonctionne correctement:
scala printargs.scala "foo(bar)baz"
Donc je suppose que ce n'est pas un bug dans scala.bat
. Mais qu'est-ce que je peux faire?
Mise à jour: l'erreur réelle se produit dans la ligne suivante dans scala.bat
:
set _ARGS=%*
avec le message d'erreur
baz was unexpected at this time
Si je change scala.bat
qu'il n'utilise pas une variable locale, mais utilisez% * directement, cela fonctionne correctement. Donc, je filed a bug-report. La question demeure s'il existe une solution de contournement pour ce problème jusqu'à ce que le bogue soit résolu.
Vous devez ajouter le code de scala.bat, afin que nous puissions voir le problème – jeb
S'il vous plaît envoyer le message d'erreur –
'D: \ Télécharger> printargs foo (bar) baz' => ' baz était inattendu pour le moment. 'Il n'y a pas d'erreur quand j'ai "foo (bar) baz" entre guillemets. , le vrai dans le répertoire bin/Scala, il semble être lié au caractère paren ')' de fermeture. – frayser