xcopy mit Zeitausgabe
Hi ihr da draußen
Gleich mal meine Frage:
Gibt es irgendeine Möglichkeit die Dauer auszugeben die beim Kopieren mit xcopy entsteht??
(soll in eine "backup.log" geschrieben werden)
Ich bräuchte das für jede Datei oder Ordner die kopiert wurden damit man gleich sieht bei welcher Datei er abgebrochen hat.
Gleich mal meine Frage:
Gibt es irgendeine Möglichkeit die Dauer auszugeben die beim Kopieren mit xcopy entsteht??
(soll in eine "backup.log" geschrieben werden)
Ich bräuchte das für jede Datei oder Ordner die kopiert wurden damit man gleich sieht bei welcher Datei er abgebrochen hat.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 12268
Url: https://administrator.de/contentid/12268
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
15 Kommentare
Neuester Kommentar
Hallo,
xcopy hat keine interne Möglichkeit, auszugeben, wie lange es zum Kopieren benötigt hat. Du könntest Dir aber helfen, indem Du vor und nach jedem Kopiervorgang die Uhrzeit über %time% abfragst und das in die Logdatei schreibst.
Gruß,
TIM
xcopy hat keine interne Möglichkeit, auszugeben, wie lange es zum Kopieren benötigt hat. Du könntest Dir aber helfen, indem Du vor und nach jedem Kopiervorgang die Uhrzeit über %time% abfragst und das in die Logdatei schreibst.
Gruß,
TIM
Hallo,
hab leider auch gerade gemerkt, dass es nicht wirklich geht. Ich bin aus irgendeinem Grund davon ausgegangen, dass Du mit Schleifen rekursiv durch die Verzeichnisse wanderst und kopierst. Das macht xcopy aber selber und man kann in die Ausgabe von xcopy nichts mehr einfügen.
Ansonsten hätte ich mir das in etwa so gedacht (ungetestet):
Ist die Frage, ob das überhaupt geklappt hätte... Sorry, kann doch nicht weiterhelfen.
Gruß,
TIM
hab leider auch gerade gemerkt, dass es nicht wirklich geht. Ich bin aus irgendeinem Grund davon ausgegangen, dass Du mit Schleifen rekursiv durch die Verzeichnisse wanderst und kopierst. Das macht xcopy aber selber und man kann in die Ausgabe von xcopy nichts mehr einfügen.
Ansonsten hätte ich mir das in etwa so gedacht (ungetestet):
set start=%time%
set /p zu_kopierende_datei= | xcopy %Quelle% %Ziel% /C /D /E /H /R /Y
set ende=%time%
echo "%start% %ende% %zu_kopierende_datei%" >>%windir%\backup.log
Ist die Frage, ob das überhaupt geklappt hätte... Sorry, kann doch nicht weiterhelfen.
Gruß,
TIM
wenn dir protokollierung so wichtig ist, warum verwendest du dann nicht robocopy von Microsoft.... ist viel Leistungsfähiger als xcopy und du kannst alles protokollieren lassen.
http://www.it-administrator.de/aktuell/13643.html
http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff- ...
dazu gibt es super Frontends.... damit kannst du ein deine Batchdatei per Klickserstellen,
beispiel: http://www.wintotal.de/softw/index.php?rb=43&id=2339
http://www.it-administrator.de/aktuell/13643.html
http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff- ...
dazu gibt es super Frontends.... damit kannst du ein deine Batchdatei per Klickserstellen,
beispiel: http://www.wintotal.de/softw/index.php?rb=43&id=2339
Moin Zwiebelkopf,
schließe mich linkit und meinereiner an..
@meinereiner: fast das gleiche Posting hatte ich auch grad fertig
Zusatz: wenn Du in diesen monströsen Logdatei auch lesen willst, weshalb XCopy verreckt ist (meistens "Zugriff verweigert"), dann musst Du noch eine Umleitung mehr dranhängen.
Der /F-Parameter schreibt Quell- und zusätzlich Zieldatei incl. Pfad mit.
Falls dein XCopy bisher abbricht, weil der Quellserver mal Offline geht: dafür gibt es noch den etwas lieblos dokumentierten Parameter /Z.
Dadurch wird XCopy "wieder aufgenommen", sobald der Server wieder erreichbar ist.
Interessehalber: Aus welchen Gründen bricht denn bei Dir der XCopy bisher ab?
Frank / der Biber aus Bremen
schließe mich linkit und meinereiner an..
@meinereiner: fast das gleiche Posting hatte ich auch grad fertig
Zusatz: wenn Du in diesen monströsen Logdatei auch lesen willst, weshalb XCopy verreckt ist (meistens "Zugriff verweigert"), dann musst Du noch eine Umleitung mehr dranhängen.
XCopy %Quelle% %Ziel% /C /D /E /H /R /Y /F 1>>xcopy.log 2>>&1
Der /F-Parameter schreibt Quell- und zusätzlich Zieldatei incl. Pfad mit.
Falls dein XCopy bisher abbricht, weil der Quellserver mal Offline geht: dafür gibt es noch den etwas lieblos dokumentierten Parameter /Z.
Dadurch wird XCopy "wieder aufgenommen", sobald der Server wieder erreichbar ist.
Interessehalber: Aus welchen Gründen bricht denn bei Dir der XCopy bisher ab?
Frank / der Biber aus Bremen
Hi @all,
darf ich als Laie mal fragen, wie man aus der Kopierzeit lesen kann,
welche Datei warum nicht kopiert wurde?
darf ich als Laie mal fragen, wie man aus der Kopierzeit lesen kann,
welche Datei warum nicht kopiert wurde?
darf ich als Laie mal fragen, wie man aus
der Kopierzeit lesen kann,
welche Datei warum nicht kopiert wurde?
der Kopierzeit lesen kann,
welche Datei warum nicht kopiert wurde?
kann man nicht.
Das wird bei Bibers batch aber mit ">>xcopy.log 2>>&1" mitgeloggt.
Wobei ich eher " 2 >> xcopy.log" schreiben würde, da dann nur die Fehler mitgeloggt werden und nicht jeder Kopiervorgang.
@meinereiner,
gute Anregung, würde ich auch gern so machen wie Du vorschlägst..
aber dann sieht die Logdatei so aus:
Start Xcopy 01.04.2005 18:39
Zugriff verweigert
Zugriff verweigert
Zugriff verweigert
Ende Xcopy 01.04.2005 19:01
auf meine bin ich ja auch nicht wirklich stolz:
Start Xcopy 01.04.2005 18:39
Datei1.xyz
Datei2.xyz
Datei3.xyz
Datei4.xyz
Zugriff verweigert
Datei5.xyz
Zugriff verweigert
Datei6.xyz
...
... (weitere 23m Fließtext ohne echte Handlung)
...
Datei39234.txt
Zugriff verweigert
.....
Ende Xcopy 01.04.2005 19:01
( Datei4.xyz hat nicht geklappt; Fehler leider nicht in der gleichen Zeile... )
Aber wenn ich auf die Umleitung von stderr verzichte, stehen nur die Dateinamen im Logfile (ohne die Zeile "Zugriff verweigert" darunter).
Die einzige Möglichkeit, die ich sehe, mit XCopy tatsächlich eine reine Errorlog-Datei zu schreiben, wäre: Xcopy in einen 20-Zeilen-Batch zu packen, rekursiv durch die Quellverzeichnisse zu wackeln und jede zu kopierende Datei einzeln mit Xcopy anzufassen.
Und wenn es nicht klappt, Datum/Uhrzeit, Dateiname und Fehlergrund wegzuschreiben.
Ähnlich wie Tim es oben andeutet.
Ist machbar, ist aber
a) stinkelangsam
b) albern, ausgerechnet die Rekursivität, die xcopy schon bietet, noch mal nachzubilden *gg
c) außerdem schon längst erfunden (ob robocopy oder was kommerzielles)
Frank / der Biber aus Bremen
@Biber
stimmt du hast recht.
Ich hatte mich schon gewundert warum du das so schriebst..hätte halt mal besser drüber nachdenken sollen..
stimmt du hast recht.
Ich hatte mich schon gewundert warum du das so schriebst..hätte halt mal besser drüber nachdenken sollen..
Moin Daniel,
ich habs gestern schon geschrieben:
[..]
Die einzige Möglichkeit, die ich sehe, mit XCopy tatsächlich eine reine Errorlog-Datei zu schreiben, wäre: Xcopy in einen 20-Zeilen-Batch zu packen, rekursiv durch die Quellverzeichnisse zu wackeln und jede zu kopierende Datei einzeln mit Xcopy anzufassen.
Und wenn es nicht klappt, Datum/Uhrzeit, Dateiname und Fehlergrund wegzuschreiben.
[..]
Wenn Du diese 20 Zeilen haben willst UND es am Wochenende regnet UND nichts im Fernsehen kommt, kann ich die mal zusammenbraten... ist zwar ein büschen albern (s.u.), aber in zwei Hinsichten ist XCopy schon ein feines Tool:
-XCopy kopiert/überschreibt auch Dateien mit Versteckt/System/ReadOnly-Attributen
-XCopy kommt auch mit geöffneten Dateien klar
Heißt nur... diese beiden Fälle bekomme ich mit einer anderen Quick&Dirty-Bllig-Lösung wie *.vbs nicht ohne Verrenkung gebacken; möchte schon bei xcopy bleiben.
Aber -wie auch schon geschrieben- wenn Du die 300000 Dateien statt mit EINEM XCopy/Robobocopy/TrallalaCopy-Aufruf mit insgesamt 300001 in einem Batch verpackten XCopy-Aufrufen einzeln kopierst, könnte es einen Moment länger dauern.. (Zeit für ein oder zwei Snickers..)
Deshalb noch mal die Frage:
Wieso um Himmels willen verreckt denn Dein XCopy heute?
Wenn er/sie/es heute "hart" aussteigt, dann müsste doch laut M$-Doku zumindest ein Errorlevel zurückgegeben werden...welches denn?
Frank / der Biber aus Bremen
ich habs gestern schon geschrieben:
[..]
Die einzige Möglichkeit, die ich sehe, mit XCopy tatsächlich eine reine Errorlog-Datei zu schreiben, wäre: Xcopy in einen 20-Zeilen-Batch zu packen, rekursiv durch die Quellverzeichnisse zu wackeln und jede zu kopierende Datei einzeln mit Xcopy anzufassen.
Und wenn es nicht klappt, Datum/Uhrzeit, Dateiname und Fehlergrund wegzuschreiben.
[..]
Wenn Du diese 20 Zeilen haben willst UND es am Wochenende regnet UND nichts im Fernsehen kommt, kann ich die mal zusammenbraten... ist zwar ein büschen albern (s.u.), aber in zwei Hinsichten ist XCopy schon ein feines Tool:
-XCopy kopiert/überschreibt auch Dateien mit Versteckt/System/ReadOnly-Attributen
-XCopy kommt auch mit geöffneten Dateien klar
Heißt nur... diese beiden Fälle bekomme ich mit einer anderen Quick&Dirty-Bllig-Lösung wie *.vbs nicht ohne Verrenkung gebacken; möchte schon bei xcopy bleiben.
Aber -wie auch schon geschrieben- wenn Du die 300000 Dateien statt mit EINEM XCopy/Robobocopy/TrallalaCopy-Aufruf mit insgesamt 300001 in einem Batch verpackten XCopy-Aufrufen einzeln kopierst, könnte es einen Moment länger dauern.. (Zeit für ein oder zwei Snickers..)
Deshalb noch mal die Frage:
Wieso um Himmels willen verreckt denn Dein XCopy heute?
Wenn er/sie/es heute "hart" aussteigt, dann müsste doch laut M$-Doku zumindest ein Errorlevel zurückgegeben werden...welches denn?
Frank / der Biber aus Bremen
@Biber....
lustiges Pseudonym.... wie kamst auf die Idee ????
@author:
bezüglich Frage robocopy... du kanst fur w2k auch die W2k3 Version nehmen, funktioniert problemlos..... Dabei ist eine umfangreiche Dokumentation.
Bezüglich Rechte: mit welchem Benutzer startest du den Batchlauf ??? Schon mal überprüft, wenn so eine Datei übersprungen wird, ob du hierfür genügend Rechte hast ????
lustiges Pseudonym.... wie kamst auf die Idee ????
@author:
bezüglich Frage robocopy... du kanst fur w2k auch die W2k3 Version nehmen, funktioniert problemlos..... Dabei ist eine umfangreiche Dokumentation.
Bezüglich Rechte: mit welchem Benutzer startest du den Batchlauf ??? Schon mal überprüft, wenn so eine Datei übersprungen wird, ob du hierfür genügend Rechte hast ????
@linkit..... Das erzähl ich vielleicht mal bei einem Bier, wenn wir uns besser kennen..
@Daniel
menno, menno, menno...
Lass mal diesen 20-Zeiler laufen, damit wir endlich mal rausbekommen, wieso Dein XCopy verreckt...
Hinweis zum Testen:
- eine schreibgeschützte Datei mitsichern, bei mir die "D:\FOUND.000\FILE0010.CHK"
- Parameter /D oben beim ersten XCOPY weglassen (zum Testen einfach alle Dateien nehmen, damit wir was sehen)
- oben beim zweiten XCopy-Aufruf den Parameter /R weggelassen zum Test (soll bei Readonly auf eine Mine Laufen).
Beim zweiten Start sieht die Logdatei so aus:
@Daniel: nimm das Bätchelchen, pass die paar Parameter an und lass es laufen.
Und morgen poste bitte diese doofe LogDatei.
Und übermorgen bitte ein Kistchen Becks per UPS nach Bremen...
Frank / der Biber aus Bremen
@Daniel
menno, menno, menno...
Lass mal diesen 20-Zeiler laufen, damit wir endlich mal rausbekommen, wieso Dein XCopy verreckt...
:: -------snipp BibersXCopyMitLog.bat
@echo off
(SET Fromdir=D:\FOUND.000) & REM Dieses Dir incl Subdirs und allem Zeuch soll kopiert werden
(SET ArchDir=D:\Misc\testit\Xcopytest) & REM Das ist mein Spielordner; solltest Du anpassen
(SET ErrLogfile=xcopyError.Log) & REM Das ErrorlogFile; bei mir keine Gesamtprotokollierung,; nur Fehler
(SET OKLogfile=NUL) & REM LogDatei für die Nicht-Problem-Fälle; kann auch CON oder das File %ErrLogfile% sein
(SET CopyLst=AllFiles2CopyLog.tmp) & REM Hier stehen alle Dateien die XCOPY kopieren würde
Echo Start %~n0 %date% %time% >>%ErrlogFile%
XCOPY "%Fromdir%\*.*" "%ArchDir%" /E /C /I /F /Y /H /L /D |find /v "Datei(en) kopiert">%CopyLst%
FOR /F "tokens=1,* delims=>" %%i IN (%CopyLst%) DO CALL :loop "%%i" "%%j"
GOTO ThatsAllFolks
:loop
(SET FromFile=%1) & SET ToFile=%2
(SET FromFile="%FromFile:~1,-3%") & SET ToFile="%ToFile:~2,-1%"
XCopy %FromFile% %ToFile% /F /Y /H /R 1>nul 2>Oneliner.txt
If Errorlevel 0 ( echo %time:~0,5% From %Fromfile% >%OkLogfile%) & ( echo To %ToFile% ) >>%OkLogfile%
If Errorlevel 1 For /F "tokens=*" %%a IN (Oneliner.txt) do ( echo %time:~0,5% [%%a] ErrLevel=%errorlevel% From %Fromfile% To %ToFile% ) >>%ErrLogfile%
goto :eof
:ThatsAllFolks
(Echo Ende %~n0 %date% %time% >>%ErrlogFile%) & IF DEFINED DEBUGMYBATCHES type %ErrLogFile%
:: -------snapp BibersXCopyMitLog.bat
- eine schreibgeschützte Datei mitsichern, bei mir die "D:\FOUND.000\FILE0010.CHK"
- Parameter /D oben beim ersten XCOPY weglassen (zum Testen einfach alle Dateien nehmen, damit wir was sehen)
- oben beim zweiten XCopy-Aufruf den Parameter /R weggelassen zum Test (soll bei Readonly auf eine Mine Laufen).
Beim zweiten Start sieht die Logdatei so aus:
-----snipp xcopyError.Log-------
Start BibersXCopyMitLog Fr 24.06.2005 19:38:08,86
19:38 [Zugriff verweigert] ErrLevel=4 From "D:\FOUND.000\FILE0010.CHK" To "D:\Misc\testit\Xcopytest\FILE0010.CHK"
Ende BibersXCopyMitLog Fr 24.06.2005 19:38:12,48
-----snapp xcopyError.Log-------
@Daniel: nimm das Bätchelchen, pass die paar Parameter an und lass es laufen.
Und morgen poste bitte diese doofe LogDatei.
Und übermorgen bitte ein Kistchen Becks per UPS nach Bremen...
Frank / der Biber aus Bremen