我遇到了這個問題** IF NOT processed ==%true%**。
問題是,它應該停留在循環中。
我試過繞過IF處理的其他途徑==%false%它在循環中進行,但不能在第二次回去。有時候,它會達到3次。如果聲明第一次有效,但不是第二次
我的「呼應!處理!進程」總是給我正確的號碼,但IF語句只是不處理第二次,
%TRUE%和%FALSE%的全局變量1和0
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 2011-12-23 14:23:29