Ihr Problem ist nicht, seine Errorlevel erfordert spezielle Behandlung, es ist nicht wie eine gewöhnliche Umgebungsvariable. Der einzige Test, den Sie mit errorlevel durchführen können, besteht darin, zu testen, ob er größer oder gleich dem Wert ist.
so haben Sie Error Werte vom höchsten zum niedrigsten zu testen, denn wenn Errorlevel 1 dann if errorlevel 1
wahr sein, aber if errorlevel 0
wird auch wahr sein
setlocal
set /A sample =1
:first
type C:\test.txt | find "inserted"
if errorlevel 1 goto exam
if errorlevel 0 goto test
:test
echo "testloop" >> C:\testloop.txt
set /A sample = %sample% + 1
if %sample% LEQ 4 goto first
:exam
echo "exam loop" >> C:\examloop.txt
endlocal
, wenn Sie Befehlserweiterungen aktiviert haben, und es ist keine Umgebungsvariable namens ERRORLEVEL (case insensitive). Dann können Sie% ERRORLEVEL% theoretisch wie eine gewöhnliche Umgebungsvariable verwenden. So sollte dies auch
setlocal EnableExtensions
set /A sample =1
:first
type C:\test.txt | find "inserted"
if %errorlevel% EQU 1 goto exam
if %errorlevel% EQU 0 goto test
:test
echo "testloop" >> C:\testloop.txt
set /A sample = %sample% + 1
if %sample% LEQ 4 goto first
:exam
echo "exam loop" >> C:\examloop.txt
Stephan dank t: \ examloop.txt
Goto:
Echo „-Prüfung loop“ >> c getan o richtig formatiert, warum nicht Code falsch formatieren. – user9133538
weil Sie nichts formatiert haben. Sehen Sie [hier] (https://stackoverflow.com/editing-help), wie es geht. – Stephan