26741
11.03.2006, aktualisiert am 20.03.2006
8560
6
0
Errormeldung und Ausgabe in Log-Datei
Hallo,
ich habe ein Batch-Script geschrieben, welches in der Firma automatisiert Dateien backuppen und sortieren soll.
Ich möchte aber gerne keine Ausgaben und Fehler auf der Konsole angezeigt haben. Bisher habe ich es nur geschafft, entweder die Fehler oder die Ausgaben zu unterdrücken bzw. in eine Logdatei zu schreiben.
Hier das Stück Code:
ECHO.
ECHO Verschiebe XY-Daten
MOVE "%path_xydata%\*.%xy_filetype%" "%save_path%\%save_xydata%"
ECHO ============================================================= >> %save_path%\%logfile%
ECHO -----DONE-----
Wie kann ich jetzt von dem MOVE auch noch die verschobenen Dateien ins Logfile verschieben, nicht nur Fehlermeldungen??
In diesem Beitrag ist das Problem ebenfalls angeschnitten und auch keine richtige Lösung, nur Workarounds gefunden worden: Batchdatei - Logschreiben aber trotzdem Textausgabe in der Konsole
Ich danke schonmal für jeden Tipp!!
Johannes
ich habe ein Batch-Script geschrieben, welches in der Firma automatisiert Dateien backuppen und sortieren soll.
Ich möchte aber gerne keine Ausgaben und Fehler auf der Konsole angezeigt haben. Bisher habe ich es nur geschafft, entweder die Fehler oder die Ausgaben zu unterdrücken bzw. in eine Logdatei zu schreiben.
Hier das Stück Code:
ECHO.
ECHO Verschiebe XY-Daten
MOVE "%path_xydata%\*.%xy_filetype%" "%save_path%\%save_xydata%"
ECHO -----DONE-----
Wie kann ich jetzt von dem MOVE auch noch die verschobenen Dateien ins Logfile verschieben, nicht nur Fehlermeldungen??
In diesem Beitrag ist das Problem ebenfalls angeschnitten und auch keine richtige Lösung, nur Workarounds gefunden worden: Batchdatei - Logschreiben aber trotzdem Textausgabe in der Konsole
Ich danke schonmal für jeden Tipp!!
Johannes
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 27959
Url: https://administrator.de/contentid/27959
Ausgedruckt am: 23.11.2024 um 15:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
also zunächst mal, wenn du hinter/unter dem echo keine pause machst, kannst du das ja überhauptnicht lesen, da so diese Zeile zwar angezeigt wird aber in Millisekunden wieder verschwindet.
Also wenn du das auch lesen möchtest dann z.B. mit
for %%e in (echo pause) do %%e Verschiebe XY-Daten
Aber nun zum eigentlichen Problem.
Du hast Dateien im Verzeichnis %a% liegen und willst diese nach Verzeichnis %b% verschieben. Außerdem soll kein prompt angezeigt werden, sondern dieser soll in eine Log-Datei geschrieben werden. Außerdem sollen die verschobenen Dateien auch noch ins Logfile geschrieben werden. Ist das soweit richtig?
Nun, die Ausgabe vom Move ist doch
Verzeichnis\Datei => Verzeichnis [OK] wenn alles gut gelaufen ist und z.B.
%adresse%\dateixyz.txt kann nicht verschoben werden - Datei oder Verzeichnis nicht vorhanden
oder eine andere Fehlermeldung wenn ein Fehler aufgetreten ist
Außerdem gibt Move einen Errorlevel zurück
0 wenn OK und
größer 0 meist 1 wenn nicht OK
Somit hast du 2 Möglichkeiten zu bestimmen was ohne prompt passieren soll
1. move %a%\datei.txt %b%>nul
damit wird die Ausgabe ins nichts geleitet, man kann aber trotzdem über über die Abfrage
If errorlevel 1 (bedeutet errorlevel >= 1)
feststellen ob fehlerfrei oder nicht und das auch in eine Datei schreiben.
2. move %a%\datei.txt %b%>>logfile.txt
Damit steht, wie oben bereits ausgeführt der Vorgang in der Logfile und zwar egal ob verschieben OK oder nicht OK
Willst Du das gesamte Verzeichnis verschieben, geht das am einfachsten mit:
for /f "tokens=*" %%e in ('dir /s /b %a%') do move %%e %b%>>logfile.txt
damit steht auch jede einzelne Datei in Verzeichnis %a% in der Logfile, ob kopiert oder nicht.
In %a% und %b% stehen natürlich die Verzeichnisadressen von und nach.
MfG maneich
also zunächst mal, wenn du hinter/unter dem echo keine pause machst, kannst du das ja überhauptnicht lesen, da so diese Zeile zwar angezeigt wird aber in Millisekunden wieder verschwindet.
Also wenn du das auch lesen möchtest dann z.B. mit
for %%e in (echo pause) do %%e Verschiebe XY-Daten
Aber nun zum eigentlichen Problem.
Du hast Dateien im Verzeichnis %a% liegen und willst diese nach Verzeichnis %b% verschieben. Außerdem soll kein prompt angezeigt werden, sondern dieser soll in eine Log-Datei geschrieben werden. Außerdem sollen die verschobenen Dateien auch noch ins Logfile geschrieben werden. Ist das soweit richtig?
Nun, die Ausgabe vom Move ist doch
Verzeichnis\Datei => Verzeichnis [OK] wenn alles gut gelaufen ist und z.B.
%adresse%\dateixyz.txt kann nicht verschoben werden - Datei oder Verzeichnis nicht vorhanden
oder eine andere Fehlermeldung wenn ein Fehler aufgetreten ist
Außerdem gibt Move einen Errorlevel zurück
0 wenn OK und
größer 0 meist 1 wenn nicht OK
Somit hast du 2 Möglichkeiten zu bestimmen was ohne prompt passieren soll
1. move %a%\datei.txt %b%>nul
damit wird die Ausgabe ins nichts geleitet, man kann aber trotzdem über über die Abfrage
If errorlevel 1 (bedeutet errorlevel >= 1)
feststellen ob fehlerfrei oder nicht und das auch in eine Datei schreiben.
2. move %a%\datei.txt %b%>>logfile.txt
Damit steht, wie oben bereits ausgeführt der Vorgang in der Logfile und zwar egal ob verschieben OK oder nicht OK
Willst Du das gesamte Verzeichnis verschieben, geht das am einfachsten mit:
for /f "tokens=*" %%e in ('dir /s /b %a%') do move %%e %b%>>logfile.txt
damit steht auch jede einzelne Datei in Verzeichnis %a% in der Logfile, ob kopiert oder nicht.
In %a% und %b% stehen natürlich die Verzeichnisadressen von und nach.
MfG maneich
hi,
mal mir dir > datei.log probiert ?
Gruß
mal mir dir > datei.log probiert ?
Gruß