For loop 在批处理脚本中的变量内传递for参数
在我的批处理文件中不起作用,请帮助 我需要的是,cmd首先解析“%%1”是1、2或其他;然后解析For loop 在批处理脚本中的变量内传递for参数,for-loop,batch-file,For Loop,Batch File,在我的批处理文件中不起作用,请帮助 我需要的是,cmd首先解析“%%1”是1、2或其他;然后解析%vid1% 徖 我认为这是一个更大的问题,“变量中的变量”,因为这也不起作用: set vid1=asd set vid2=fgh for /L %%1 in (1,1,2) do (echo %vid%%1%) pause 我应该使用delayedexpansion: set asd=1 set vid1=qwe echo %vid%asd%% setlocal EnableDela
%vid1%
徖
我认为这是一个更大的问题,“变量中的变量”,因为这也不起作用:
set vid1=asd
set vid2=fgh
for /L %%1 in (1,1,2) do (echo %vid%%1%)
pause
我应该使用
delayedexpansion
:
set asd=1
set vid1=qwe
echo %vid%asd%%
setlocal EnableDelayedExpansion
set vid1=asd
set vid2=qwe
for /L %%i in (1,1,3) do (echo !vid%%i!)
pause
也可以在没有延迟扩展的情况下执行此操作:
set asd=1
set vid1=qwe
echo %vid%asd%%
setlocal EnableDelayedExpansion
set vid1=asd
set vid2=qwe
for /L %%i in (1,1,3) do (echo !vid%%i!)
pause
完整的脚本(因为我在尝试是否可以做一些事情,所以它很臃肿):
尝试
呼叫echo%%vid%%1%%
。作为旁注,我不建议为for
变量使用数字,因为它很容易与传递给脚本的参数混淆。谢谢,但它不起作用。它的字面意思是“%vid1%”,而不是“asd”。是的,谢谢,这只是一个解释问题的原型。@Debrune:Squashmans的建议对我来说很好。它同时呼应asd
和fgh
。你忘了调用命令了吗?哦,非常抱歉,是的,它起作用了,非常感谢。我忘了打电话了。请看一些关于发生了什么以及为什么的解释。