【发布时间】:2021-11-17 15:39:03
【问题描述】:
我正在尝试创建一个从另一个批处理文件调用的批处理文件,但变量不起作用,所有结果都是“a”,而预期结果将是 option1=a、option2=b 等.
这是演示问题的代码:
call temp.bat a b c d e f g h i j k l m n o p q r s t e u v w x y z
pause
exit
对于 temp.bat:
set Number=0
for %%a in (%*) do set /a Number+=1
for /l %%a in (1,1,%Number%) do (
set option%%a=%1
shift
)
exit /b
我试过!%1!,结果为空; %%1% 给出了 "%1" 作为结果; %1% 的结果与仅使用 %1 的结果相同
【问题讨论】:
-
Argument references 和
formeta-variables 与environment variables 完全不同,而delayed expansion 只影响后者……
标签: batch-file cmd indirection delayedvariableexpansion