Ergebnis von find in Variable schreiben
Hallo,
ich nutze den Befehl robocopy um CAD-Daten zu sichern. Gleichzeitig lasse ich ein Logfile schreiben, dass mir im Fehlerfall die Möglichkeit bietet, nach dem Fehler zu suchen.
Ziel schlussendlich ist es, sicherzustellen, dass der Kopiervorgang 100%-ig funktioniert hat.
Das funktioniert auch.
Jetzt möchte ich aber dieses Logfile nach verschiedenen Fehlermeldungen durchsuchen und beim Finden des ersten Fehlers möchte ich eine Variable setzen um damit eine Messagebox anzusteuern. Die Suchstrings sind Fehlercodes von Robocopy. Es ist mir gelungen, eine Fehlermldung per echo abzusetzen.
usw. gibt noch mehr davon
Es gelingt mir aber nicht, im Fehlerfall eine Variable mit einem Wert zu belegen.
Ich habe schon diverse Anleitungen in verschiedenen Foren u.a. mit For /F gelesen, komme aber leider nicht zum gewünschten Erfolg.
Kann mir da vielleicht jemand weiterhelfen?
Anmerkung: Die Installation von zusätzlicher Software kommt leider nicht in Frage. Wenn jemand eine grundsätzlich andere Idee in Bezug auf die Optionen von robocopy hat, bin ich auch dafür offen. Es muss nicht zwangsweise über eine log-Datei laufen.
Mit freundlichen Grüßen
cadsupport007
ich nutze den Befehl robocopy um CAD-Daten zu sichern. Gleichzeitig lasse ich ein Logfile schreiben, dass mir im Fehlerfall die Möglichkeit bietet, nach dem Fehler zu suchen.
Ziel schlussendlich ist es, sicherzustellen, dass der Kopiervorgang 100%-ig funktioniert hat.
robocopy %QUELLE% %ZIEL% /E /DCOPY:DA /COPY:DAT /TS /R:5 /W:5 /LOG+:"C:\boc\backup.log"
Das funktioniert auch.
Jetzt möchte ich aber dieses Logfile nach verschiedenen Fehlermeldungen durchsuchen und beim Finden des ersten Fehlers möchte ich eine Variable setzen um damit eine Messagebox anzusteuern. Die Suchstrings sind Fehlercodes von Robocopy. Es ist mir gelungen, eine Fehlermldung per echo abzusetzen.
find /i "0x00000003" backup.log && echo Fehler gefunden!
find /i "0x00000005" backup.log && echo Fehler gefunden!
find /i "0x00000020" backup.log && echo Fehler gefunden!
Es gelingt mir aber nicht, im Fehlerfall eine Variable mit einem Wert zu belegen.
Ich habe schon diverse Anleitungen in verschiedenen Foren u.a. mit For /F gelesen, komme aber leider nicht zum gewünschten Erfolg.
Kann mir da vielleicht jemand weiterhelfen?
Anmerkung: Die Installation von zusätzlicher Software kommt leider nicht in Frage. Wenn jemand eine grundsätzlich andere Idee in Bezug auf die Optionen von robocopy hat, bin ich auch dafür offen. Es muss nicht zwangsweise über eine log-Datei laufen.
Mit freundlichen Grüßen
cadsupport007
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 790804946
Url: https://administrator.de/contentid/790804946
Ausgedruckt am: 23.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
https://docs.microsoft.com/en-US/troubleshoot/windows-server/backup-and- ...
Sehe gerade, dass nicht nur ExitCode=0 fehlerfrei bedeutet. Detailierte Info siehe Link...
Sehe gerade, dass nicht nur ExitCode=0 fehlerfrei bedeutet. Detailierte Info siehe Link...
Hallo CADsupport,
der Vergleich in der IF-Abfrage im Batch/CMD wird nicht mit einem einzelnen "=" geprüft. Entweder "==" oder "equ" benutzen. Und in Batch ist der %errorlevel% abzufragen. z.B.
Oder wenn du da in ein Logfile schreiben möchtest:
Wenn es Batch werden soll, guck dir ggf. die Syntax der Befehle an. Nicht PowerShell und Batch vermischen...
https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...
Es spricht natürlich nichts dagegen, auch im Robocopy das Log mit zu schreiben.
/Peter
der Vergleich in der IF-Abfrage im Batch/CMD wird nicht mit einem einzelnen "=" geprüft. Entweder "==" oder "equ" benutzen. Und in Batch ist der %errorlevel% abzufragen. z.B.
if %errorlevel% equ 0 echo OK
if %errorlevel% equ 0 echo OK >> C:\Testordner\TestLog.log
Wenn es Batch werden soll, guck dir ggf. die Syntax der Befehle an. Nicht PowerShell und Batch vermischen...
https://docs.microsoft.com/en-us/windows-server/administration/windows-c ...
Es spricht natürlich nichts dagegen, auch im Robocopy das Log mit zu schreiben.
/Peter