**이 문제는 ** 처리되지 않은 경우 == % true % **입니다.
문제는 그것이 shouldnt 할 때 루프에 머무르고 있다는 것입니다.
IF 처리 된 주위에 다른 방법을 시도 == % false % 루프에 있지만 두 번째 시간에 돌아 가지 않습니다. 때때로, 그것은 3 번까지 들어간다.문이 처음으로 작동하지만 두 번째 시간이 아님
내 "에코! 처리! 과정은"항상 나에게 올바른 번호를주고 있지만, IF 문은 단지 두 번째 시간을 처리하고 있지 주위
퍼센트 TRUE % 및 % FALSE %가 전역 변수 1과 0
당신이TRUE
및
FALSE
이 무엇인지 정의하는 경우
setlocal
:loopapp
**if not '!processed!'=='%TRUE%'** (
set /a count+=1
"%ProgramFiles%\abc\abc.exe" !file! !post!
call :ERRORCODES !file! !post! !ERRORLEVEL! !count!
goto :loopapp
)
endlocal
:ERRORCODES
setlocal
if %errornum% LEQ 99 (
set no_license=%FALSE%
if '!post!'== 'A' set no_license=%TRUE%
if '!no_license!'=='%TRUE%' (
echo Searching ... '!count!' ... Please Wait ...
if !count! EQU 5 (
set execute=%TRUE%
set succes=%FALSE%
echo %~n1 - Fatal - process %TIME% >> %tempfolder%\errorlog.txt
goto :END
)
set execute=%FALSE%
set succes=%FALSE%
goto :out_errorcodes
)
set execute=%TRUE%
set succes=%FALSE%
echo %~n1 - Fatal - process %TIME% >> %tempfolder%\errorlog.txt
goto :out_errorcodes
)
... other errors
:out_errorcodes
endlocal & set processed=%execute% & set fait=%succes%
goto :EOF
에 설명되어 % 처리 % 변수를 사용하는 공간을 피하기 위해 사실 일 것이다 : setlocal이없는 ERRORCODES를 더 이상 서브 프로그램으로 사용하지 않았습니다. 어쨌든 다른 서브 프로그램을 호출하는 서브 프로그램이 잘 작동하지 않는 것처럼 보입니다. – Spaceballs