我遇到了这个问题** 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