У меня есть пакетный файл с именем «BuildTools.bat» внутри папки с именем «BuildTools» на моем диске D:
@echo off
cd /d %UserBuildTools%
if exist "C:\Program Files\BuildTools\BuildTools.jar" (
@echo Arguments: "%*"
@echo Building In "%UserBuildTools%"
java -Xmx1024M -jar "C:\Program Files\BuildTools\BuildTools.jar" *%
)
if not exist "C:\Program Files\BuildTools\BuildTools.jar" (
echo BuildTools is not installed. Please update BuildTools using the Update-BuildTools command.
)
@echo on
Эта папка BuildTools также указана в моей пользовательской переменной среды с именем UserBuildTools
. Эта переменная также указана в пользовательской переменной Path
. Благодаря этому я могу запустить BuildTools.bat
в любом каталоге, если в моем профиле запущена командная строка.
Проблема возникает, когда я пытаюсь указать аргументы. Как вы можете видеть в командном файле, я убедился, что перед запуском основной операции BuildTools я использую аргументы Java.
. Вот строка из вывода, который я получаю при запуске "BuildTools --rev 1.8.8 "в командной строке под моим пользователем: Attempting to build version: 'latest' use --rev <version> to override
Как вы можете видеть, он думает, что я говорю ему создать" последний ", хотя аргументы, которые я ввел в команду, были отражены быть "--rev 1.8.8": Arguments: "--rev 1.8.8"
Я думал, что это потому, что если оператор if exist
, но это не так. Выполнение BuildTools-NoCheck.bat
с теми же аргументами также дало тот же результат. Вот содержание:
@echo off
cd /d %UserBuildTools%
@echo Arguments: "%*"
@echo Building In "%UserBuildTools%"
java -Xmx1024M -jar "C:\Program Files\BuildTools\BuildTools.jar" *%
@echo on