Ordner per BAT Datei kopieren und LOG FILE erstellen
Hi Leute,
ich möchte einen Ordner kopieren. Ich möchte aber, dass er mir nach jeder Datei einen Eintrag in mein LOGFILE macht. Wie kriege ich das hin?
Vielen Dank schonmal.
Im Endeffekt wird folgender Ordner "C:\VetZ\easyVET\base\*.*" von der Festplatte auf ein Netzwerklaufwerk kopiert.
Ich möchte jetzt, dass er mir in das LOGFILE schreibt, welche Dateien kopiert wurden und ob erfolgreich.
Vielen Dank!
ich möchte einen Ordner kopieren. Ich möchte aber, dass er mir nach jeder Datei einen Eintrag in mein LOGFILE macht. Wie kriege ich das hin?
Vielen Dank schonmal.
@Echo off
Echo ACHTUNG: Dieses Programm sichert jetzt easyVet!
ping -n 5 localhost > nul
Echo .
Echo ------------------------------------------------------
net stop "VetZ Online Service"
net stop "POET Object Server"
ping -n 5 localhost > nul
>>Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log Echo Datum: %date%
Echo %time% SCHRITT 1 erfolgreich! >>Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log
ECHO ************ SCHRITT 1 erfolgreich! ************
Echo .
Echo .
Echo ------------------------------------------------------
Echo Kopiervorgang wird gestartet!
Echo .
Echo .
Xcopy "C:\VetZ\easyVET\base\*.*" "Y:\easyVet\base\*.*" /S /M /Y
Echo .
Echo Der Kopiervorgang war erfolgreich.
Echo .
Echo %time% SCHRITT 2 erfolgreich! >>Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log
Echo ************ SCHRITT 2 erfolgreich! ************
Echo .
Echo ------------------------------------------------------
net start "VetZ Online Service"
net start "POET Object Server"
Echo %time% SCHRITT 3 erfolgreich! >>Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log
Echo ************ SCHRITT 3 erfolgreich! ************
Echo .
Echo **********************************************************************
Echo %time% Das Programm wurde ordnungsgemaess ausgefuehrt. Ende >>Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log
Echo *** Das Programm wurde ordnungsgemaess ausgefuehrt. Ende erreicht. ***
Echo **********************************************************************
Echo .
EXIT
Im Endeffekt wird folgender Ordner "C:\VetZ\easyVET\base\*.*" von der Festplatte auf ein Netzwerklaufwerk kopiert.
Ich möchte jetzt, dass er mir in das LOGFILE schreibt, welche Dateien kopiert wurden und ob erfolgreich.
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148522
Url: https://administrator.de/contentid/148522
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo Rocky112!
Im einfachsten Fall mit folgender Zeile 19:
... und, bevor Du fragst: eine parallele Ausgabe auf den Bildschirm und in die Datei ist nicht (ohne Zusatztools oder "Klimmzüge" - siehe dazu NeonZeros Anleitung) möglich - Du könntest aber im einfachsten Fall (wie bei "Lösung 3" beschrieben) anstelle des Log-Files eine Temp-Datei verwenden und nach dem Kopieren den Inhalt per "
Grüße
bastla
P.S.: Der Pfad "Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log" wäre ein klassisches Beispiel für eine sinnvolle Verwendung von Variablen ...
Im einfachsten Fall mit folgender Zeile 19:
>>Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log Xcopy "C:\VetZ\easyVET\base\*.*" "Y:\easyVet\base\*.*" /S /M /Y
type
" in das Log-File schreiben und dann nochmals auf den Bildschirm ...Grüße
bastla
P.S.: Der Pfad "Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log" wäre ein klassisches Beispiel für eine sinnvolle Verwendung von Variablen ...
Hallo erstmal,
ich habe mir mal die Zeit genommen und die Batch "ordentlicher" bzw. "übersichtlicher" (augenfreundlicher) gemacht.
Ich hoffe du aknnst es gebrauchen, so wie ich das jetzt mal gemacht habe
MfG Karsten
ich habe mir mal die Zeit genommen und die Batch "ordentlicher" bzw. "übersichtlicher" (augenfreundlicher) gemacht.
@echo off &setlocal
chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß
chcp 850>nul
title easyVet-Sicherung
set log="Z:\Dokumente\Administration\Logfiles\easyVet_Sicherung.Log"
if exist %log% del %log%
Echo ACHTUNG: Dieses Programm sichert jetzt easyVet!
ping -n 5 localhost > nul
Echo .
Echo ------------------------------------------------------
net stop "VetZ Online Service"
net stop "POET Object Server"
ping -n 5 localhost > nul
>>%log% Echo Datum: %date%
>>%log% Echo easyVet-Sicherung
>>%log% Echo.
>>%log% Echo %time% SCHRITT 1 erfolgreich!
ECHO ************ SCHRITT 1 erfolgreich! ************
Echo .
Echo .
Echo ------------------------------------------------------
Echo Kopiervorgang wird gestartet!
Echo .
Echo .
::Hier wird erst kopiert, und danach in's Log geschrieben
Xcopy "C:\VetZ\easyVET\base\*.*" "Y:\easyVet\base\*.*" /S /M /Y
>>%log% Xcopy "C:\VetZ\easyVET\base\*.*" "Y:\easyVet\base\*.*" /S /M /Y
:: Überprüfung ob alles glatt gelaufen ist
:: Wenn ja, dann erscheint "Der Kopiervorgang war erfolgreich."
:: Wenn nicht, dann beendet sich das programm nach kurzer Zeit selbst.
if "%errorlevel%" EQU "0" (
Echo .
Echo Der Kopiervorgang war erfolgreich.
) else (
echo Da ist was schief gelaufen.
echo Der Kopiervorgang war nicht erfolgreich.
echo Das programm beendet sich selbst.
ping -n 5 localhost > nul
goto :eof
)
Echo .
>>%log% Echo %time% SCHRITT 2 erfolgreich!
Echo ************ SCHRITT 2 erfolgreich! ************
Echo .
Echo ------------------------------------------------------
net start "VetZ Online Service"
net start "POET Object Server"
>>%log% Echo %time% SCHRITT 3 erfolgreich!
Echo ************ SCHRITT 3 erfolgreich! ************
Echo .
Echo **********************************************************************
>>%log% Echo %time% Das Programm wurde ordnungsgem%ae%ss ausgef%ue%hrt. Ende
Echo *** Das Programm wurde ordnungsgem%ae%ss ausgef%ue%hrt. Ende erreicht. ***
Echo **********************************************************************
Echo .
goto :eof
Ich hoffe du aknnst es gebrauchen, so wie ich das jetzt mal gemacht habe
MfG Karsten
Hallo,
(x)copy-st du noch oder robocopy-st du schon? Mit Robocopy und dem Parameter /TEE ist gewünschtes möglich.
Grüße
Zitat von @bastla:
... und, bevor Du fragst: eine parallele Ausgabe auf den Bildschirm und in die Datei ist nicht (ohne Zusatztools oder
"Klimmzüge" - siehe dazu NeonZeros Anleitung) möglich -
... und, bevor Du fragst: eine parallele Ausgabe auf den Bildschirm und in die Datei ist nicht (ohne Zusatztools oder
"Klimmzüge" - siehe dazu NeonZeros Anleitung) möglich -
(x)copy-st du noch oder robocopy-st du schon? Mit Robocopy und dem Parameter /TEE ist gewünschtes möglich.
Grüße
@Connor1980
"
Grüße
bastla
Mit Robocopy und dem Parameter /TEE ist gewünschtes möglich.
Das ist ja mal was ganz Neues ... "
robocopy
" wurde bereits im ersten Kommentar vorgeschlagen ...Grüße
bastla
[OT]
@Connor1980
Ansonsten ist "
Grüße
bastla
[/OT]
@Connor1980
Und es soll ja noch Menschen geben, die Dokumentationen, etc. nicht lesen können ...
Das war jetzt aber sehr freundlich formuliert ... Ansonsten ist "
robocopy
" sicherlich eine gute Wahl (besonders, wenn es schon Bestandteil des von Rocky112 verwendeten, aber nicht genannten, BS sein sollte) ...Grüße
bastla
[/OT]
[OT]
Hmm... veilleicht noch nicht mit dem *Finger kreuz* *Knoblauch hochhalt* Dokumentation-Lesen oder dem Robocopy....
Aber /TEE ist bestimmt schon in Arbeit...
[/OT]
Hmm... veilleicht noch nicht mit dem *Finger kreuz* *Knoblauch hochhalt* Dokumentation-Lesen oder dem Robocopy....
Aber /TEE ist bestimmt schon in Arbeit...
[/OT]