Измените все экземпляры %SCALA_HOME%
на !SCALA_HOME!
и добавьте следующее в верхнюю часть файла:
setlocal enableextensions enabledelayedexpansion
Последнее включает «расширение с отложенной переменной», что означает, что переменные, записанные в форме !VAR!
, не раскрываются до тех пор, пока они не будут использованы, а не когда синтаксический анализ самой инструкции. (В моем ограниченном опыте, и, конечно, в этом случае, это означает, что расширения переменных с меньшей вероятностью будут неверно истолкованы как фактические конструкции синтаксиса пакетных файлов.) Спасибо Патрику Каффу за указание этого лучшего способа сделать это в комментарии. *
P.S .: Как вы обнаружили, язык cmd.exe
пакетных файлов ужасно сломан во многих отношениях. Если вы не можете использовать подлинный язык сценариев (например, если ваша задача должна выполняться на других компьютерах), я бы настоятельно рекомендовал отключить быстрый «сценарий» C / C ++, который выполняет эту работу, и скомпилировать его в .EXE.