У меня возникает эта проблема с ** ЕСЛИ НЕ обработано ==% true% **.
Проблема в том, что он остается в цикле, когда он не должен.
Я пробовал в противоположном направлении IF обработанным ==% false% он идет в цикле, но не возвращается во второй раз. иногда это происходит до 3 раз.Если оператор работает в первый раз, но не во второй раз
мой «эхо! Обрабатываются! Процесс» всегда дает мне правильный номер, но оператор IF просто не обрабатывает во второй раз
% ИСТИНА% и% ЛОЖЬ% являются глобальной переменной 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
я, наконец, использовал: ERRORCODES без setlocal, больше не используя его в качестве подпрограммы. Кажется, что подпрограмма, вызывающая другую подпрограмму, вообще не работает ... THX в любом случае! – Spaceballs