Я передаю список аргументов при запуске командного файла, и мне нужно значение определенного аргумента -logdir, чтобы установить какой-либо путь dir в моем командном файле. Как я могу сначала проверить, передан ли -logdir
в качестве аргумента, и если он передан, получить его значение и установить его в переменную.
Я запускаю его как:
test.bat -env test1 -logdir C:\Users\...\log -userhome ... -log ...
и много других аргументов. Эти аргументы могут быть переданы в другом порядке.
Я могу получить список аргументов, переданных с использованием ниже.
set argCount=0
for %%x in (%*) do set /A argCount+=1
echo Number of processed arguments: %argCount%
set /a count=0
for /l %%x in (1, 1, %argCount%) do (
set /a count=!count!+1
call set "var=%%!count!"
echo var= %!var!
)
Но я сталкиваюсь с проблемами, сравнивающими эти аргументы со значением. Я пытался использовать, если как показано ниже:
if -> if "!_var!" equ "-logdir" set /a logdir="%%!count!"
Но ошибка в синтаксисе неверна.