如何在Windows命令提示符批处理文件中使用嵌套FOR中的SET / A增加数值?

时间:2013-07-14 21:14:07

标签: windows cmd command-prompt windows-console

这是我的批处理脚本:

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

我正在尝试在内部循环中使用count递增set /a "count+=1"值,但似乎此命令对增加该变量没有影响。

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:4)

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

setlocal EnableDelayedExpansion

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