Передача аргументов с круглыми скобками в скрипт Scala, содержащийся в пакетном файле Windows - PullRequest
0 голосов
/ 15 декабря 2010

Я бы хотел поместить несколько скриптов Scala в командный файл. Если вы просто напечатаете аргументы, канонический путь будет выглядеть так:

::#!
@echo off
scala %0 %*
goto :eof
::!#
args foreach println

(На самом деле это вызывает другой пакетный скрипт, scala.bat из директории bin Scala). Если я пытаюсь передать ему аргумент, содержащий скобки, интерпретатор командной строки Windows выдает синтаксическую ошибку:

printargs.bat "foo(bar)baz"

Странно, если я создаю файл scala printargs.scala, содержащий только args foreach println, это работает правильно:

scala printargs.scala "foo(bar)baz"

Так что я предполагаю, что это не ошибка в scala.bat. Но что я могу сделать?

Обновление: фактическая ошибка возникает в следующей строке в scala.bat:

set _ARGS=%*

с сообщением об ошибке

baz was unexpected at this time

Если я изменю scala.bat на то, что он не использует локальную переменную, а напрямую использует% *, он будет работать правильно. Поэтому я подал отчет об ошибке . Вопрос остается, есть ли обходной путь для этой проблемы, пока ошибка не будет исправлена.

Ответы [ 2 ]

0 голосов
/ 12 июня 2012

Я не думаю, что это имеет какое-либо отношение к Scala .. У меня сейчас такая же проблема с передачей аргумента, содержащего скобки, в команду grails.Видимо, это проблема с оболочкой Windows, пытались экранировать символы "(", но это не работает: /

0 голосов
/ 09 февраля 2011

Эта ошибка не возникает в scala 2.8.1.final.Я бы предложил вместо этого использовать эту версию.

...