Drei Batch-Dateien in eine Log speichern...
Hallo Zusammen,
ich bastele gerade an einer Update Update-Batch. Was auch gut funktioniert!
Der Ablauf ist recht simpel (Vereinfachte Darstellung):
1.Batch wird von Hand gestartet (Update vom Client Starten)
@echo Hallo bla bla bla
net use...
usw.
call x:\Update.bat
2.Batch (Automatisierter Ablauf):
@echo Dateien werden kopiert...
del...
usw.
call C:\starte-Programm.bat
3.Batch (Start des Programms):
call "C:\Das Programm.exe"
exit
Nun möchte ich erreichen, dass Batch 1+2+3 eine Logdatei erzeugt auf C:\Log-rap.txt
Dafür habe ich am Anfang der ersten Batch folgendes geschrieben:
@echo Datum:%Date%>>C:\Log-RAP.txt
@echo Zeit:%Time%>>C:\Log-RAP.txt
@echo Use:%USERNAME%>>C:\Log-RAP.txt
@echo System:%computername%>>C:\Log-RAP.txt
Hinter jeder Zeile in allen Batch-Dateien egal welcher Befehl da steht habe ich ein: >>C:\Log-RAP.txt angehängt!
Nun zu meinem Problemen:
Bei den @echo s wird der Hinweis für den Benutzer nicht mehr angezeigt und bei den Befehlen werden die Ergebnisse nicht mit geschrieben! Ich verstehe nicht warum?
Gibt es keine Möglichkeit am Anfang der Batch einen Befehl zu geben den Inhalt zusätzlich in eine Log.txt zu schreiben oder was mache ich falsch?
Danke
ich bastele gerade an einer Update Update-Batch. Was auch gut funktioniert!
Der Ablauf ist recht simpel (Vereinfachte Darstellung):
1.Batch wird von Hand gestartet (Update vom Client Starten)
@echo Hallo bla bla bla
net use...
usw.
call x:\Update.bat
2.Batch (Automatisierter Ablauf):
@echo Dateien werden kopiert...
del...
usw.
call C:\starte-Programm.bat
3.Batch (Start des Programms):
call "C:\Das Programm.exe"
exit
Nun möchte ich erreichen, dass Batch 1+2+3 eine Logdatei erzeugt auf C:\Log-rap.txt
Dafür habe ich am Anfang der ersten Batch folgendes geschrieben:
@echo Datum:%Date%>>C:\Log-RAP.txt
@echo Zeit:%Time%>>C:\Log-RAP.txt
@echo Use:%USERNAME%>>C:\Log-RAP.txt
@echo System:%computername%>>C:\Log-RAP.txt
Hinter jeder Zeile in allen Batch-Dateien egal welcher Befehl da steht habe ich ein: >>C:\Log-RAP.txt angehängt!
Nun zu meinem Problemen:
Bei den @echo s wird der Hinweis für den Benutzer nicht mehr angezeigt und bei den Befehlen werden die Ergebnisse nicht mit geschrieben! Ich verstehe nicht warum?
Gibt es keine Möglichkeit am Anfang der Batch einen Befehl zu geben den Inhalt zusätzlich in eine Log.txt zu schreiben oder was mache ich falsch?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207866
Url: https://administrator.de/forum/drei-batch-dateien-in-eine-log-speichern-207866.html
Ausgedruckt am: 21.04.2025 um 12:04 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @zeroblue2005:
Nun möchte ich erreichen, dass Batch 1+2+3 eine Logdatei erzeugt auf C:\Log-rap.txt
Dafür habe ich am Anfang der ersten Batch folgendes geschrieben:
@echo Datum:%Date%>>C:\Log-RAP.txt
@echo Zeit:%Time%>>C:\Log-RAP.txt
@echo Use:%USERNAME%>>C:\Log-RAP.txt
@echo System:%computername%>>C:\Log-RAP.txt
Nun möchte ich erreichen, dass Batch 1+2+3 eine Logdatei erzeugt auf C:\Log-rap.txt
Dafür habe ich am Anfang der ersten Batch folgendes geschrieben:
@echo Datum:%Date%>>C:\Log-RAP.txt
@echo Zeit:%Time%>>C:\Log-RAP.txt
@echo Use:%USERNAME%>>C:\Log-RAP.txt
@echo System:%computername%>>C:\Log-RAP.txt
Und was spricht dagegen, die entscheidenden Zeitlen einfach doppelt anzugeben. Einmal auf den Bildschirm und zum zweiten in die Logdatei?
@echo Datum:%Date%
@echo Datum:%Date%>>C:\Log-RAP.txt
@echo Zeit:%Time%
@echo Zeit:%Time%>>C:\Log-RAP.txt
@echo Use:%USERNAME%
@echo Use:%USERNAME%>>C:\Log-RAP.txt
@echo System:%computername%
@echo System:%computername%>>C:\Log-RAP.txt
Danke
Gruss Penny.
Zitat von @zeroblue2005:
Ich frage mich nur, warum einen simpelen Befehl wie:
Net Use X: \\192.168.5.2\RAP-Update /persistent:no>>C:\Log-RAP.txt
Dann nicht mit in die Log-Datei schreibt. Habe es versucht wie oben und auch so...aber entweder schreibt er die nicht oder
führt die nicht aus!
Net Use X: \\192.168.5.2\RAP-Update /persistent:no >> C:\Log-RAP.txt
Ich frage mich nur, warum einen simpelen Befehl wie:
Net Use X: \\192.168.5.2\RAP-Update /persistent:no>>C:\Log-RAP.txt
Dann nicht mit in die Log-Datei schreibt. Habe es versucht wie oben und auch so...aber entweder schreibt er die nicht oder
führt die nicht aus!
Net Use X: \\192.168.5.2\RAP-Update /persistent:no >> C:\Log-RAP.txt
Hallo zeroblue2005,
diese Frage kann ich Dir leider nicht beantworten. Als Würgaround würde ich ein
Echo Net Use X: \\192.168.5.2\RAP-Update /persistent:no >> C:\Log-RAP.txt
Vielleicht hat jemand im Forum eine begründugn, warum die Ausgabe von Net Use nicht in eine Logdatei geschrieben werden kann.
Gruss Penny.
Und warum ist es so?
Soll ich at(AT Zeichen wird hier nicht dargestellt) echo oder nur echo benutzen?
Probiere doch beide Versionen und schau welche funktioniert oder die bessere Lösung ist.
Gruss Penny.
Soll ich at(AT Zeichen wird hier nicht dargestellt) echo oder nur echo benutzen?
Gruss Penny.
moin,
weil es noch nicht Abgehakt von mir auch noch etwas:
Der Fehlerkanal sollte auch umgeleitet werden, wenn es sich um eine LOG Handelt.
Die anderen Handels können auch genutzt werden, wenn nur das Ergebnis in den LOG soll.
Somit Wird Handle 3 und die Fehlerausgabe ins LOG geschrieben.
Der Promt jedenfalls der Befehl ist dabei immer noch zu sehen.
Der Stapel1 sollte dann so ausehen.
Als Alternative um eine Batch Zeilenweise Durchzugehen und diese so zu LOGgen:
Dazu muss aber ein Befehl nicht mehr als eine Zeile sein.
Gruß Phil
weil es noch nicht Abgehakt von mir auch noch etwas:
Der Fehlerkanal sollte auch umgeleitet werden, wenn es sich um eine LOG Handelt.
Die anderen Handels können auch genutzt werden, wenn nur das Ergebnis in den LOG soll.
rem Startbatch
call D:\Batch1.cmd 3>>"D:\Log.txt" 2>>"D:\Log.txt"
call D:\Batch2.cmd 3>>"D:\Log.txt" 2>>"D:\Log.txt"
call D:\Batch3.cmd 3>>"D:\Log.txt" 2>>"D:\Log.txt"
pause
Der Promt jedenfalls der Befehl ist dabei immer noch zu sehen.
Der Stapel1 sollte dann so ausehen.
rem D:\Batch1.cmd (Beispiel)
echo Zeit %time%
>&3 echo Zeit: %time%
>&3 Net Use X: \\192.168.5.2\RAP-Update /persistent:no
Als Alternative um eine Batch Zeilenweise Durchzugehen und diese so zu LOGgen:
prompt $g$s
(
for /f usebackqdelims^= %%i in ("D:\Batch1") do >&3 %%i
) 3>>"D:\Log.txt" 2>>"D:\Log.txt"
pause
Gruß Phil