我需要有关我正在处理的批处理文件的帮助,
基本上,每次它执行一项任务时,它都应该将变量 %number% 加一个,这一切正常,然后再次重复执行不同的任务,直到完成。
这是它用来重复的代码
我基本上需要一种设置方式:
set svn=%svn%%number%
set svnlink=%svnlink%%number%
set svnfolder=%svnfolder%%number%
我正在使用:
if %number%==1 (
set svn=%svn1%
set svnlink=%svnlink1%
set svnfolder=%svnfolder1%)
if %number%==2 (
set svn=%svn2%
set svnlink=%svnlink2%
set svnfolder=%svnfolder2%)
if %number%==3 (
set svn=%svn3%
set svnlink=%svnlink3%
set svnfolder=%svnfolder3%)
当它达到 20+ 时我真的需要缩短它
这可能吗?如果你能帮助我,谢谢!
最佳答案
使用临时批处理文件。这可能不优雅,但它有效:
set svn1=First text
set svn2=Second text
REM This echos the first text
set number=1
echo echo %%svn%number%%% > a.bat
call a
REM This echos the second text
set number=2
echo echo %%svn%number%%% > a.bat
call a
if exist a.bat del a.bat
但要注意:要找出 %
的数量和顺序会变得相当困难。在这里使用。在示例中,%%svn%number%%%
转换为 %svn[actual value X of variable number]%
并将其转换为 svnX
的实际值a.bat
内部.
所以你的实际代码应该是这样的:
REM Note that number has to be set here already!
echo set svn=%%svn%number%%% > a.bat
echo set svnlink=%%svnlink%number%%% >> a.bat
echo set svnfolder=%%svnfolder%number%%% >> a.bat
call a.bat
这也可以用作子程序:
set number=1
set returnmark=mark1
goto setvars
:mark1
set number=45
set returnmark=mark2
goto setvars
:mark2
goto end
:setvars
echo set svn=%%svn%number%%% > a.bat
echo set svnlink=%%svnlink%number%%% >> a.bat
echo set svnfolder=%%svnfolder%number%%% >> a.bat
call a.bat
goto %returnmark%
:end
关于windows - 批号变量 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2999414/