tobias-azubi
Goto Top

Batch Datei mit Ausgabe

Hi,
ich würde gerne einen *.txt erhalten wenn mei Xcopy befehl durchgelaufen ist ... darin soll stehen
wie lange er gebraucht hat
wieviel es war
und Wo evntl Fehler aufgetreten sind.

Ist so etwas möglich?

So sieht sie bis jetzt aus

xcopy c:*.* d:Sicherung /e /i /y /h /c

Es handelt sich um eine Datenmenge von ungefähr 500gb falls das wichtig ist.
Iwer einen vorschlag?

Mfg Tobias

Content-ID: 121974

Url: https://administrator.de/forum/batch-datei-mit-ausgabe-121974.html

Ausgedruckt am: 23.12.2024 um 04:12 Uhr

education
education 04.08.2009 um 13:08:58 Uhr
Goto Top
ja die umstellung heist robocopy. wird heute hier auch schon gesagt.

xcopy ist nicht mehr ganz aktuell. eine "logfunktion ist leider nicht direkt möglich. was du machen könntest:

echo %time% %date% sicherung gestartet >> d:\sicherungslog.txt
xcopy c:*.* d:Sicherung /e /i /y /h /c
echo %time% %date% sicherung beendet >>d:\sicherungslog.txt

nachtrag:

echo %time% %date% sicherung gestartet >> d:\sicherungslog.txt
xcopy c:*.* d:Sicherung\ /l >> d:\dateicopy.txt
xcopy c:*.* d:Sicherung\ /e /i /y /h /c
echo %time% %date% sicherung beendet >>d:\sicherungslog.txt
noodyn
noodyn 04.08.2009 um 13:11:40 Uhr
Goto Top
sicher, warum nicht, wird aber etwas umfangreicher.

0. Erzeugen der txt Datei
1. Merken der Startzeit.
2. xcopy
3. Vergleich Endzeit mit Startzeit
4. Größenermittlung des kopierten Verzeichnisses

Für Fehleranalyse kannst du nur das komplette log von xcopy mit reinschreiben
Tobias-Azubi
Tobias-Azubi 04.08.2009 um 13:38:05 Uhr
Goto Top
Okay vielen dank schonmal...
werde es testen und mich dann wieder melden
Larz
Larz 04.08.2009 um 13:52:03 Uhr
Goto Top
Hallo Tobias,

hab mal etwas rumprobiert. Technisch ist es so gedacht:

1. Ich lege eine Log-Datei an und schreibe zu Beginn die Startzeit rein
2. Ich schreibe in diese Log-Datei die aktuelle Verzeichnisgröße des Scherungsordners
3. Nun kopieren wir die Daten (welche, das wird ebenfalls ins Log geschrieben)
4. Jetzt ermitteln wir die aktuellen Zeit nach dem Kopieren, ab damit in die in die Log-Datei
5. Nun noch Ermitteln die neue Verzeichnisgröße ermitteln und ebenfalls ins Log damit.
6. Zu guter letzt - versenden wir diese Log-Datei als E-Mail mittels dem Programm blat.exe

cd\
cls
set LogDatei=C:\Sicherung\log.txt
set Quellverzeichnis=C:\Quelle\*.*
set Sicherungsordner=C:\Sicherung
set Blat=c:\Tools\blat.exe
set Absender=Absender@DeineMail.de
set Empfaenger=Empfaenger@DeineMil.de
set SMTPServer=Servername_oder_IP
del %LogDatei%
FOR /F "tokens=3 delims= " %%i in ('dir /s %Sicherungsordner%^|find "Datei(en)"') do set Groesse=%%i  
@echo Startzeitpunkt: &time/t >> %LogDatei%
@echo Aktuelle Verzeichnisgröße: &@echo %Groesse% Bytes >> %LogDatei%
xcopy %Quellverzeichnis% %Sicherungsordner% /e /i /y /h /c >> %LogDatei%
@echo Endzeitpunkt: &time/t >> %LogDatei%
@echo Neue Verzeichnisgröße: &@echo %Groesse% Bytes >> %LogDatei%
"%Blat%" %LogDatei% -to %Empfaenger% -subject "Sicherung durchgefuehrt" -Server %SMTPServer% -f %Absender%  

Ich hoffe es ist nachvollziehbar,. sonst fragen...

Gruß
Larz
potshock
potshock 04.08.2009 um 14:40:26 Uhr
Goto Top
Hi Tobias,

wie education schon richtig schreibt, ist dies am einfachsten mit robocopy zu bewerkstelligen, z.B.so:

robocopy "C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\Thunderbird" "G:\Sicherungen\Sichergamer\Thunderbird" /MIR /LOG+:c:\sicher.log /TEE

/MIR bewirkt, daß nur neuere Dateien kopiert werden und nicht mehr vorhanden gelöscht werden.
/LOG+:c:\sicher.log erstellt einen sicher.log auf C:
/TEE gibt die geloggten Daten auch auf dem Bildschirm aus

Weitere Infos zu robocopy z.B. hier: http://www.msu-hb.de/system/system/robocopy.htm

T@cky