donnobre
Goto Top

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:

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

Content-ID: 168261

Url: https://administrator.de/contentid/168261

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

Friemler
Friemler 19.06.2011 um 15:33:11 Uhr
Goto Top
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 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
Hitman4021
Hitman4021 19.06.2011 um 15:46:18 Uhr
Goto Top
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
Biber
Biber 19.06.2011 um 17:26:34 Uhr
Goto Top
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 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