Komplette batch logfile
Hallo zusammen, wieder wende ich mich mit einem Problem an euch
also meine frage ist ob ich, alles was in einer batch pasiert als logfile in eine datei schreiben kann, ohne es 200 mal schreiben zu müßen
Beispiel:
hatte mich schon durch mehrere Foren durchgelesen aber leider nicht das passende gefunden. Es gab mal einen ähnlichen Beitrag
Batch-Ausgabe in Logfile UND auf Bildschirm?
leider gab es dort aber keine antwort ausser eine 2te batch zu schreiben.
Vielen dank im voraus
also meine frage ist ob ich, alles was in einer batch pasiert als logfile in eine datei schreiben kann, ohne es 200 mal schreiben zu müßen
Beispiel:
set log=c:\logfile.txt
call :kopieren ( sowas geht leider nicht >%log%)
:kopieren
xcopy ...
if exist ... (
xcopy ...
) else (
echo
)
xcopy ...
xcopy ...
hatte mich schon durch mehrere Foren durchgelesen aber leider nicht das passende gefunden. Es gab mal einen ähnlichen Beitrag
Batch-Ausgabe in Logfile UND auf Bildschirm?
leider gab es dort aber keine antwort ausser eine 2te batch zu schreiben.
Vielen dank im voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 168261
Url: https://administrator.de/contentid/168261
Ausgedruckt am: 23.11.2024 um 09:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo DONNobre,
schau Dir mal diese Anleitung an. Wegen verschiedener Nachteile der einzelnen Lösungen mit Batchscript würde ich auf einem privat genutzten Rechner die Lösung mit dem UNIX-Tool
Gruß
Friemler
schau Dir mal diese Anleitung an. Wegen verschiedener Nachteile der einzelnen Lösungen mit Batchscript würde ich auf einem privat genutzten Rechner die Lösung mit dem UNIX-Tool
TEE
bevorzugen. Das Programm kann hier als Bestandteil einer Sammlung von auf Windows portierten UNIX-Tools heruntergeladen werden. Nach dem Auspacken des ZIP-Files befindet sich TEE.exe
im Verzeichnis usr\local\wbin
.Gruß
Friemler
Du hast 3 Standardkanäle:
Kanal 0 = Standardeingabe = STDIN (Tastatur)
Kanal 1 = Standardausgabe = STDOUT (Monitor/Terminal)
Kanal 2 = Standardfehlerausgabe =STDERR (Fehlerkanal)
Sry habe die Linux Befehle im Kof gehabt. Unter Windows keine Ahnung. Aber villeicht helfen dir die Kanäle ja auch was ;)
Gruß Hitman
Kanal 0 = Standardeingabe = STDIN (Tastatur)
Kanal 1 = Standardausgabe = STDOUT (Monitor/Terminal)
Kanal 2 = Standardfehlerausgabe =STDERR (Fehlerkanal)
Sry habe die Linux Befehle im Kof gehabt. Unter Windows keine Ahnung. Aber villeicht helfen dir die Kanäle ja auch was ;)
Gruß Hitman
Moin DONNobre,
mach da nicht so viel Heckmeck drum - du willst ja einfach alles umleiten und nicht auf zwei Kanälen gleichzeitig schreiben.
Also füge einfach eine zusätzliche Zeile 2 in deinen Schnipsel ein nach folgender Skizze:
Dieser Beispielschnipsel namens "MachEinDIR.cmd" hat als einzigen Nutz-Code das "Dir *.cmd" (entspricht deiner gesamten XCopy-Bandwurmarie.
Wenn du das Beispiel aufrufst as is, dann wird alles in ein Logfile namens {PfadDerBatchdatei}\MachEinDIR.log geschrieben.
Bei dir wäre einzusetzen die Zeile
Grüße
Biber
mach da nicht so viel Heckmeck drum - du willst ja einfach alles umleiten und nicht auf zwei Kanälen gleichzeitig schreiben.
Also füge einfach eine zusätzliche Zeile 2 in deinen Schnipsel ein nach folgender Skizze:
:: dieser Schnipsel heisst MachEinDIR.cmd
@echo off & Setlocal
If "%1" NEQ "LeiteAllesUm" %0 LeiteAllesUm >%~dpn0.log
dir *.cmd
Dieser Beispielschnipsel namens "MachEinDIR.cmd" hat als einzigen Nutz-Code das "Dir *.cmd" (entspricht deiner gesamten XCopy-Bandwurmarie.
Wenn du das Beispiel aufrufst as is, dann wird alles in ein Logfile namens {PfadDerBatchdatei}\MachEinDIR.log geschrieben.
Bei dir wäre einzusetzen die Zeile
If "%1" NEQ "LeiteAllesUm" %0 LeiteAllesUm >%log%
-oder-If "%1" NEQ "LeiteAllesUm" %0 LeiteAllesUm 2>&1 >%log%
...wenn auch Fehermeldungen in der *.log landen sollen (also die auf Kanal 2 = STDERR geleiteten.Grüße
Biber