For Schleife mit Errorlevel
Hallo Zusammen
ich versuche aus einer Text-Datei die IP-Adresse auszulesen und anschließend via PSEXEC auf dem Zielrechner einen Registry-Key auszulesen.
- Auslesen aus der Text-Datei funktioniert
- Verbinden via PSEXEC funktioniert auch
- Zugriff auf Remote-Registry ist auch OK
Log.txt werden nun alle Rechner als OK eingetragen, daher Errorlevel 2. Da ich aber Rechner dort abfrage die nicht Online sind, dürfte dies doch nicht sein oder?
Meine Idee später ist, ein Log zu haben mit der Übersicht welche OK sind und welche nicht... und mit denen welche nicht OK sind kann man dann noch ein wenig spielen
Ja, mit dem ReturnCode 0 habe ich es auch versucht, funktionierte auch nicht. Obwohl PSEXEC nach jedem Rechner sagt "reg exited on XXX.XXX.XXX.XXX with error code 0" - ist wohl vermutlich aber der ErrorCode von REG Query selber..
Weiß einer von Euch Rat?
LG
ich versuche aus einer Text-Datei die IP-Adresse auszulesen und anschließend via PSEXEC auf dem Zielrechner einen Registry-Key auszulesen.
- Auslesen aus der Text-Datei funktioniert
- Verbinden via PSEXEC funktioniert auch
- Zugriff auf Remote-Registry ist auch OK
for /f "delims=" %%a in (IPs.TXT) do (
"%SYSTEMDRIVE%\Tools\CopyByRoby\BIN\psexec.exe" \\%%a -u xxx -p xxx -h -accepteula reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /V "Model"
IF %ERRORLEVEL% EQU 2 ECHO OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
IF %ERRORLEVEL% NEQ 2 ECHO NO >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
)
Log.txt werden nun alle Rechner als OK eingetragen, daher Errorlevel 2. Da ich aber Rechner dort abfrage die nicht Online sind, dürfte dies doch nicht sein oder?
Meine Idee später ist, ein Log zu haben mit der Übersicht welche OK sind und welche nicht... und mit denen welche nicht OK sind kann man dann noch ein wenig spielen
Ja, mit dem ReturnCode 0 habe ich es auch versucht, funktionierte auch nicht. Obwohl PSEXEC nach jedem Rechner sagt "reg exited on XXX.XXX.XXX.XXX with error code 0" - ist wohl vermutlich aber der ErrorCode von REG Query selber..
Weiß einer von Euch Rat?
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 246056
Url: https://administrator.de/forum/for-schleife-mit-errorlevel-246056.html
Ausgedruckt am: 24.12.2024 um 00:12 Uhr
5 Kommentare
Neuester Kommentar
Hallo berlinger!
Dein Stichwort wäre "
Bei dieser Art der Abfrage wird allerdings auf "größer/gleich" getestet, sodass also 0,1 und 2 "OK" wären ...
Wenn nur zwischen 0 und nicht 0 zu unterscheiden wäre, könntest Du direkt an den Befehl
anfügen.
Grüße
bastla
Dein Stichwort wäre "
delayedExpansion
" - allerdings ist es gar nicht nötig, die Variable %ERRORLEVEL% abzufragen:IF ERRORLEVEL 3 (
ECHO NO >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
) ELSE (
ECHO OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
)
Wenn nur zwischen 0 und nicht 0 zu unterscheiden wäre, könntest Du direkt an den Befehl
... && ECHO ERRORLEVEL ist 0 || ECHO ERRORLEVEL ist nicht 0
Grüße
bastla
Hallo berlinger!
Die Errorlevel-Rückgabe von "PsExec" musst Du selbst austesten, auf die Variable !ERRORLEVEL! würde ich aber weiterhin nicht abfragen:
Grüße
bastla
Die Errorlevel-Rückgabe von "PsExec" musst Du selbst austesten, auf die Variable !ERRORLEVEL! würde ich aber weiterhin nicht abfragen:
for /f "delims=" %%a in (IPs.TXT) do (
"%SYSTEMDRIVE%\Tools\CopyByRoby\BIN\psexec.exe" \\%%a -u xxx -p xxxx -h -accepteula reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /V "Model" && (
ECHO %%a Updater OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
) || (
ECHO %%a Updater NOT OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
)
)
bastla
Hallo berlinger!
Grüße
bastla
erstehe ich das richtig, dass du die ausgabe ins log "pipest" ?
Wenn ja wie kann ich das für weitere schritte verwenden? Daher bei ok mach noch das und bei not ok das?
Das kannst Du zusätzlich zum Loggen doch gleich mit erledigen:Wenn ja wie kann ich das für weitere schritte verwenden? Daher bei ok mach noch das und bei not ok das?
for /f "delims=" %%a in (IPs.TXT) do (
"%SYSTEMDRIVE%\Tools\CopyByRoby\BIN\psexec.exe" \\%%a -u xxx -p xxxx -h -accepteula reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /V "Model" && (
ECHO %%a Updater OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
MachNochDas
) || (
ECHO %%a Updater NOT OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
MachWasAnderes
)
)
Warum eigentlich Ohne errorlevel?
Ist einfacher und braucht keine "delayedExpansion
" - wobei ja ohnehin der Errorlevel geprüft wird (auf 0 oder eben nicht 0) ...Grüße
bastla