У меня проблема с пакетным файлом. В принципе, я хотел бы искать вперед 1 в цикле for и использовать это значение для ссылки на параметр в этой позиции, а затем назначить его переменной, которую затем я смогу использовать позже, см. Пример кода ниже.Переменные расширения Windows для пакетного файла
Пример: установить MyVar =% 1 +-
Где% 1 имя пары, и% 2 будет значением паров.
::Batch file sample
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set count=0
set HasParam=0
set ParamValue="null"
set paramValPos=0
for %%i in (%*) do (
set /a count=!count!+1
if /i "%%i"=="MyParam" (
set /a HasParam=1
set /a paramValPos=!count!+1
::The next line is where I Need Help, it's currently incorrect!
set ParamValue=%!paramValPos!
)
)
if %HasParam%==1 (
echo "Parameter Value: %ParamValue%"
)
pause
Пример вызова из командной строки: prog.bat MyParam = 5
Теперь я знаю, что я могу получить доступ к нему в позиции 2, как:
::Sample batch file
@echo off
echo "Param Name: %1"
echo "Param Value: %2"
pause
Однако это не что я хочу, так как есть больше параметров, а некоторые являются необязательными, и они также могут быть переданы в любом порядке.
Благодарим за помощь.
Спасибо, что работает отлично. – add