如何在Windows命令提示符batch file中使用嵌套的FOR内的SET / A增加一个数值?

这是我的批处理脚本:

set vc11path=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC set path=%path%;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE set path=%path%;%vc11path%\bin set path=%path%;G:\ida61\flair61\bin\win set /a "count = 1" cd "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib" c: for %%i IN (*.lib) DO ( md a:\libs\%%i.fdr ) for %%i IN (*.lib) DO ( for /F "skip=3" %%j in ('link.exe -lib /list %%i') do ( link.exe -lib /extract:%%j "%vc11path%\lib\%%i" /OUT:"a:\libs\%%i.fdr\%%~nj.n%count%.obj" set /a "count+=1" ) ) FOR /D %%i IN ("a:\libs\*.fdr") DO for %%j in (%%i\*.obj) do pcf.exe -g0 "%%i\%%~nj.obj" FOR /D %%i IN ("a:\libs\*.fdr") DO sigmake %%i\*.pat a:\libs\%%~ni.sig 

我想在内部循环中使用set /a "count+=1"来增加count数值,但似乎这个命令对增加该variables没有任何作用。

对不起,我英文很差。

如果希望在运行时扩展变量,则需要启用延迟扩展。 在脚本的开头添加这一行:

 setlocal EnableDelayedExpansion 

并用!count!替换循环和条件中的%count% !count!