Zeile aus BAT Datei in Log File schreiben
Hallo Freunde,
ich habe eine BAT Datei, um 4 Dateien zu sichern. Jetzt möchte ich, dass die BAT Datei bei einem erfolgreichen Kopiervorgang eine Zeile in eine Log Datei schreibt.
Hallo,
also das ist mal die BAT Datei:
start C:\Pfad\Datensicherung\poetsicherung.exe an
ping -n 15 localhost > nul
xcopy "C:\Pfad\Pfad\base\_objects.dat" "Y:\Pfad\base" /Y
xcopy "C:\Pfad\Pfad\base\objects.dat" "Y:\Pfad\base" /Y
xcopy "C:\Pfad\Pfad\base\_objects.idx" "Y:\Pfad\base" /Y
xcopy "C:\Pfad\Pfad\base\objects.idx" "Y:\Pfad\base" /Y
C:\Pfad\Datensicherung\poetsicherung.exe aus
Das funktioniert bis jetzt auch sehr gut.
Ich hätte jetzt aber gern, dass er nach dem erfolgreichen kopieren der Dateien "_objects.dat, objects.dat, _objects.idx & objects.idx" eine Zeile in folgendem Style in eine Log Datei schreibt:
DATUM, Uhrzeit, Datei _objects.dat erfolgreich kopiert.
bzw.
DATUM, Uhrzeit, Datei _objects.dat NICHT erfolgreich kopiert.
ODER evtl sogar noch edler:
DATUM:
Uhrzeit, Datei _objects.dat erfolgreich kopiert.
Uhrzeit, Datei objects.dat erfolgreich kopiert.
Uhrzeit, Datei _objects.idx erfolgreich kopiert.
Uhrzeit, Datei objects.idx erfolgreich kopiert.
bzw
DATUM:
Uhrzeit, Datei _objects.dat NICHT erfolgreich kopiert.
Uhrzeit, Datei objects.dat NICHT erfolgreich kopiert.
Uhrzeit, Datei _objects.idx NICHT erfolgreich kopiert.
Uhrzeit, Datei objects.idx NICHT erfolgreich kopiert.
Die Log Datei sollte immer weiter laufen. Sprich, wenn ich erneut kopiere sollten die neuen Einträge oben hingeschrieben werden.
Geht das?
Vielen Dank!
ich habe eine BAT Datei, um 4 Dateien zu sichern. Jetzt möchte ich, dass die BAT Datei bei einem erfolgreichen Kopiervorgang eine Zeile in eine Log Datei schreibt.
Hallo,
also das ist mal die BAT Datei:
start C:\Pfad\Datensicherung\poetsicherung.exe an
ping -n 15 localhost > nul
xcopy "C:\Pfad\Pfad\base\_objects.dat" "Y:\Pfad\base" /Y
xcopy "C:\Pfad\Pfad\base\objects.dat" "Y:\Pfad\base" /Y
xcopy "C:\Pfad\Pfad\base\_objects.idx" "Y:\Pfad\base" /Y
xcopy "C:\Pfad\Pfad\base\objects.idx" "Y:\Pfad\base" /Y
C:\Pfad\Datensicherung\poetsicherung.exe aus
Das funktioniert bis jetzt auch sehr gut.
Ich hätte jetzt aber gern, dass er nach dem erfolgreichen kopieren der Dateien "_objects.dat, objects.dat, _objects.idx & objects.idx" eine Zeile in folgendem Style in eine Log Datei schreibt:
DATUM, Uhrzeit, Datei _objects.dat erfolgreich kopiert.
bzw.
DATUM, Uhrzeit, Datei _objects.dat NICHT erfolgreich kopiert.
ODER evtl sogar noch edler:
DATUM:
Uhrzeit, Datei _objects.dat erfolgreich kopiert.
Uhrzeit, Datei objects.dat erfolgreich kopiert.
Uhrzeit, Datei _objects.idx erfolgreich kopiert.
Uhrzeit, Datei objects.idx erfolgreich kopiert.
bzw
DATUM:
Uhrzeit, Datei _objects.dat NICHT erfolgreich kopiert.
Uhrzeit, Datei objects.dat NICHT erfolgreich kopiert.
Uhrzeit, Datei _objects.idx NICHT erfolgreich kopiert.
Uhrzeit, Datei objects.idx NICHT erfolgreich kopiert.
Die Log Datei sollte immer weiter laufen. Sprich, wenn ich erneut kopiere sollten die neuen Einträge oben hingeschrieben werden.
Geht das?
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 142168
Url: https://administrator.de/contentid/142168
Ausgedruckt am: 19.11.2024 um 23:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo
Du kannst zum Beispiel folgendes schreiben:
xcopy "C:\Pfad\Pfad\base\_objects.dat" "Y:\Pfad\base" /Y>>C:\logfiles\logfile.log
Im Prinzip wie Du die Ausgabe von Ping nach dem Device NUL ausgibst, kann es auch in eine Datei umgelenkt werden.
Wenn Du nur 1 '>' machst wird die Datei immer neu erzeugt. Mit 2 '>>' wird die Ausgabe an die bestehende datei angehängt.
In meinen Batch ermittle ich noch den namen der Batch Datei, damit ich der Log Datei automatisch den richtigen Namen vergeben kann.
In etwa so:
set LogDir=C:\LogFiles
set LogFile=%~n0.log
set LogFileDir=%LogDir%\%LogFile%
Dann würde ich folgendes schreiben:
xcopy "C:\Pfad\Pfad\base\_objects.dat "Y:\Pfad\base" /Y>>%LogFileDir%
Gruss
Reto
Du kannst zum Beispiel folgendes schreiben:
xcopy "C:\Pfad\Pfad\base\_objects.dat" "Y:\Pfad\base" /Y>>C:\logfiles\logfile.log
Im Prinzip wie Du die Ausgabe von Ping nach dem Device NUL ausgibst, kann es auch in eine Datei umgelenkt werden.
Wenn Du nur 1 '>' machst wird die Datei immer neu erzeugt. Mit 2 '>>' wird die Ausgabe an die bestehende datei angehängt.
In meinen Batch ermittle ich noch den namen der Batch Datei, damit ich der Log Datei automatisch den richtigen Namen vergeben kann.
In etwa so:
set LogDir=C:\LogFiles
set LogFile=%~n0.log
set LogFileDir=%LogDir%\%LogFile%
Dann würde ich folgendes schreiben:
xcopy "C:\Pfad\Pfad\base\_objects.dat "Y:\Pfad\base" /Y>>%LogFileDir%
Gruss
Reto
Hallo Rocky und Reto,
bitte formatiert den Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Ansonsten würd ich es eher so machen:
Gruß
LotPings
bitte formatiert den Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Ansonsten würd ich es eher so machen:
@ECho off
start C:\Pfad\Datensicherung\poetsicherung.exe an
ping -n 15 localhost > nul
Set Quelle=C:\Pfad\Pfad\base\
Set Ziel=Y:\Pfad\base\
Set Log=X:\Dein.Log
>>%Log% Echo Datum: %date%
For %%A in (_objects.dat
objects.dat
_objects.idx
objects.idx ) Do Call :DoCopy %%A
C:\Pfad\Datensicherung\poetsicherung.exe aus
Goto :Eof
:DoCopy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Xcopy "%Quelle%%1" "%Ziel%" /Y
IF %Errorlevel% EQU 0 (
>>%Log% Echo %time% Datei %1 erfolgreich kopiert
) Else (
>>%Log% Echo %time% Datei %1 NICHT kopiert, Fehler %Errorlevel%
)
Gruß
LotPings