我遇到了批處理文件的問題。基本上,我想通過for循環尋找1,並使用該值來引用該位置上的參數,然後將其分配給一個變量,稍後可以使用該變量,請參閱下面的代碼示例。Windows批處理文件擴展變量
示例:set myVar =%1 + 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
現在我知道我可以在pos 2訪問它,如:
::Sample batch file
@echo off
echo "Param Name: %1"
echo "Param Value: %2"
pause
然而,這不是我想要什麼,因爲有更多的參數,有些是可選的,他們也可以以任何順序傳入。
感謝您的協助。
謝謝你的工作很好。 – add