2013-07-14 3 views
1

이 내 배치 스크립트입니다 : 나는 내부 루프에서 set /a "count+=1"를 사용하여 count 값을 증가하기 위해 노력하고있어Windows 명령 프롬프트 배치 파일에서 중첩 된 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 

하지만이 명령은 그 변수를 증가하는 효과가 없습니다 것으로 보인다.

내 불쌍한 영어로 죄송합니다.

+0

http://www.dreamincode.net/forums/topic/40896-using-set-a-statements-in-windows-batch-file/ – user1759572

+0

링크를 이용해 주셔서 감사 드리며,'cmd/v'를 사용했습니다. 배치 파일을 실행하면 문제가 해결됩니다. – Qubit

답변

4

런타임에 변수를 확장하려면 지연된 확장을 활성화해야합니다.

setlocal EnableDelayedExpansion 

!count!%count% 내부 루프와 조건문을 대체 : 스크립트의 시작 부분에이 줄을 추가합니다.

+0

고마워, 그게 내가 필요한거야. – Qubit