我遇到了批处理文件的问题。基本上,我想通过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