Я бы хотел поместить несколько скриптов 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
на то, что он не использует локальную переменную, а напрямую использует% *, он будет работать правильно. Поэтому я подал отчет об ошибке . Вопрос остается, есть ли обходной путь для этой проблемы, пока ошибка не будет исправлена.