zeroblue2005
Goto Top

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 face-smile

Content-Key: 207866

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: Penny.Cilin
Penny.Cilin Jun 12, 2013 updated at 07:52:58 (UTC)
Goto Top
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


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 face-smile

Büdde schön


Gruss Penny.
Member: zeroblue2005
zeroblue2005 Jun 12, 2013 at 07:58:46 (UTC)
Goto Top
Ja so weit war ich auch schon Penny. Das ist auch nicht mein Hauptproblem, wenn das nicht anders geht lege ich die Zeilen auch doppelt an! 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
Member: Penny.Cilin
Penny.Cilin Jun 12, 2013 at 08:20:50 (UTC)
Goto Top
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

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
vorher setzen.

Vielleicht hat jemand im Forum eine begründugn, warum die Ausgabe von Net Use nicht in eine Logdatei geschrieben werden kann.


Gruss Penny.
Member: zeroblue2005
zeroblue2005 Jun 12, 2013 at 08:32:54 (UTC)
Goto Top
Oh ich glaube ich sehe gerade warum!

Soll ich at(AT Zeichen wird hier nicht dargestellt) echo oder nur echo benutzen?
Member: Penny.Cilin
Penny.Cilin Jun 12, 2013 at 08:52:46 (UTC)
Goto Top
Zitat von @zeroblue2005:
Oh ich glaube ich sehe gerade warum!
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.
Member: pieh-ejdsch
pieh-ejdsch Jun 21, 2013 at 10:34:58 (UTC)
Goto Top
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.
 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
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.
 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
Dazu muss aber ein Befehl nicht mehr als eine Zeile sein.

Gruß Phil