Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mit xCopy kopierte Verzeichnisse im Logfile nur den Verzeichnisnamen dokumentieren

Frage Entwicklung Batch & Shell

Mitglied: mick111

mick111 (Level 1) - Jetzt verbinden

31.07.2014 um 10:47 Uhr, 1314 Aufrufe, 16 Kommentare

Hallo Leute,

ich habe hier aus verschiedenen Beiträgen mir bereits ein paar Codes zusammenkopiert.
Ich möchte per xCopy größere Verzeichnisse, ca. 80GB groß, kopieren.
Mich interessiert in einer Logdatei nicht der Inhalt der Verzeichnisse, sondern nur der Verzeichnisname selbst (der enthält alle relevanten Informationen, wie Datum und Uhrzeit).
Nach dem Kopieren wird eine Routine gestartet, die das älteste Backup von insgesamt 4 Backups löscht. Das funktioniert.
Das Kopieren haben wir so gelöst (Bsp. 1) allerdings stehen in der Logdatei mehrere MB an Daten.
In Beispiel 1 würde ich gerne den xCopy Befehl so anwenden, sodass in der Logdatei nicht die kompletten Daten, sondern nur die Verzeichnisnamen aufgelistet oder dargestellt werden.
Wie kann man dies realisieren?

Grüße
Mick
Bsp. 1

--SICHERN DER DATEN--

rem @Echo off

Set Quelle=D:\Daten
Set Ziel1=D:\Verzeichnis1
Set Ziel2=D:\Verzeichnis2
Set Log=D:\Backup.log

echo. >>%log%
echo. >>%log%

echo ------------------------------------------------------ >>%log%
echo. >>%log%
>>%Log% Echo Datum: %date% %time%


echo ------------------------------------------------------ >>%log%
echo. >>%log%
>>%Log% Echo Datum: %date% %time% %Ziel1%
>>%Log% Xcopy "%Quelle%%1" "%Ziel1%" /I /H /E /Y
echo. >>%log%
>>%Log% Echo Datum: %date% %time% %Ziel2%
>>%Log% Xcopy "%Quelle%%1" "%Ziel2%" /I /H /E /Y

IF %Errorlevel% EQU 0 (
>>%Log% Echo %time% Datei %1 erfolgreich kopiert
) Else (
>>%Log% Echo %time% Datei %1 NICHT kopiert, Fehler %Errorlevel%
)

Goto :Eof
Mitglied: emeriks
31.07.2014 um 13:02 Uhr
Hi,
ich würde einfach statt xcopy das robocopy benutzen und hier mit Parameter /NFL arbeiten.

E.
Bitte warten ..
Mitglied: mick111
31.07.2014 um 13:13 Uhr
Nein Danke, kein Robocopy, nur Windows Boardmittel.
Bitte warten ..
Mitglied: emeriks
31.07.2014 um 14:26 Uhr
http://de.wikipedia.org/wiki/Robocopy

Zitat:
"Es ist weit flexibler als das mit älteren Windows/DOS-Versionen ausgelieferte copy oder xcopy. Während es früher über das „Windows Resource Kit“ nachinstalliert werden musste, ist es in den Windows-Versionen ab Vista – auch in Windows Servern ab Version 2008 – standardmäßig enthalten und kann direkt aus der Kommandozeile heraus bzw. in der Powershell verwendet werden."

Gut. Dieser Artikel ist jetzt nicht der Oberhammer. Aber kurz und präzise.

F.
Bitte warten ..
Mitglied: mick111
31.07.2014 um 15:05 Uhr
Wusste ich nicht, ich kannte es nur von früher, wo man extra downloaden musste.
Wir möchten es aber trotzdem gerne mit xCopy realisieren, respektive der Kunde.
Und bei uns ist der Kunde KIK.

Trotzdem Danke.

Mick
Bitte warten ..
Mitglied: mick111
31.07.2014, aktualisiert um 16:01 Uhr
Hallo Emeriks,

rein interessehalber haben wir uns das Robocopy mit NFL angeschaut. Hier listet er uns ebenfalls alle Unterverzeichnisse auf und das sind bei 2 GB an Daten schon soviele Unterverzeichnisse, dass man den Überblick verliert. Ich brauche nur das oberste Verzeichnis.

z. B.:

DatenBackup_2014_07_31_15_39_20 (das ist das oberste Verzeichnis, diese Info brauchen wir, keine Unterverzeichnisse)

Ich mache mal einen Auszug, wie es z. B. mit Robocopy kommt:
Wie würde man in Robocopy oder xCopy die Unterverzeichnisse im Log nicht dokumentiert bekommen?

2 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\101\
1 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\105\
2 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\107\
1 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\109\
2 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\111\
1 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\113\
2 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\115\
1 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\117\
2 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\119\
1 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\121\
2 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\123\
1 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\125\
2 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\127\
1 D:\Sicherung\DatenBackup_2014_07_31_15_39_20\FileStores\Test\000\000\000\000\000\000\129\


Mick
Bitte warten ..
Mitglied: Endoro
31.07.2014 um 22:17 Uhr
Hey,
du könntest xcopy mit geeigneten Delimitern in eine For-f-Schleife packen, etwa so:
01.
for /f "tokens=1-3delims=\" %a in ('xcopy "%cd%" "%temp%" /I /H /E /Y') do @echo(%~a\%~b\%~c
Gruss, Endoro
Bitte warten ..
Mitglied: mick111
31.07.2014 um 22:30 Uhr
Hallo Endoro,

danke.
Kann es sein, das Dir da etwas beim Kopieren abhanden gekommen ist?
Ich bin da nicht so der Ober Guru

Gruss
Mick
Bitte warten ..
Mitglied: Endoro
01.08.2014 um 08:54 Uhr
Hey, es ist kein fertiges Programm, nur ein Hinweis zum Weiterkommen.
Du kennst die Syntax? Gruss, Endoro
Bitte warten ..
Mitglied: mick111
01.08.2014 um 09:51 Uhr
Hallo Endoro,

ich weiss, das das kein fertiges Script ist
Nein, nicht so vertraut mit der Syntax...., leider.
Grundlegende Dinge, ok.
Ich habe oben in meinem Beitrag, das was ich bisher habe.
(Ich habe etwas ähnliches noch mit DIR und automatischem Löschen von Sicherungen, die mehr als x Verzeichnisse im Laufwerk enthalten.
Nur das umzusetzen auf xcopy macht mir Probleme.
Wäre schön, wenn Du noch paar Infos mehr hättest für mich.
Danke im Voraus.
Gruss
Mick
Bitte warten ..
Mitglied: Endoro
03.08.2014 um 15:07 Uhr
Hey,
so könnte es in dein Script eingebaut werden:
01.
@echo off &setlocal 
02.
Set "Quelle=D:\Daten" 
03.
Set "Ziel1=D:\Verzeichnis1" 
04.
Set "Ziel2=D:\Verzeichnis2" 
05.
Set "Log=D:\Backup.log" 
06.
     
07.
>>%log% echo( 
08.
>>%log% echo( 
09.
 
10.
>>%log% echo ------------------------------------------------------ 
11.
>>%log% echo( 
12.
>>%Log% Echo Datum: %date% %time% 
13.
 
14.
>>%log% echo ------------------------------------------------------ 
15.
>>%log% echo( 
16.
>>%Log% Echo Datum: %date% %time% %Ziel1% 
17.
for /f "tokens=1-3delims=\" %%a in ('xcopy "%Quelle%%1" "%Ziel1%" /I /H /E /Y') do >>%log% echo(%%~a\%%~b\%%~c 
18.
>>%log% echo( 
19.
>>%Log% Echo Datum: %date% %time% %Ziel2% 
20.
for /f "tokens=1-3delims=\" %%a in ('xcopy "%Quelle%%1" "%Ziel2%" /I /H /E /Y') do >>%log% echo(%%~a\%%~b\%%~c 
21.
 
22.
IF %Errorlevel% EQU 0 ( 
23.
	>>%Log% Echo %time% Datei %1 erfolgreich kopiert 
24.
) Else ( 
25.
	>>%Log% Echo %time% Datei %1 NICHT kopiert, Fehler %Errorlevel% 
26.
)
Die Fehlerabfrage funktioniert so natürlich nicht.
Gruss, Endoro
Bitte warten ..
Mitglied: mick111
03.08.2014 um 18:40 Uhr
Hallo Endoro,

danke erst mal für Deine Unterstützung.
Jetzt läuft wenigstens mal meine Schleife.
In meiner Log steht nun eine Zeile pro Unterverzeichnis, sprich in meinem Test sind es 1900 Verzeichnisse, somit 1900 Zeilen
Ich habe die for Schleife mal etwas abgeändert, jetzt tut sie zwar, aber das ist eigentlich nicht richtig, da der Sinn der Schleife verloren geht, richtig?
Tokens brauche ich nur 3, das reicht mir als Ergebnis... das habe ich nun draus gemacht:

for /f "tokens=3 delims=\" %%a in ('xcopy "%Quelle%%1" "%Ziel1%" /I /H /E /Y') do >>%log% echo %%~a & goto :eof
:eof

Wie gesagt, kopiere ich 4 Backups, dann läuft die Schleife 1x und ich bekomme als Ergebnis nur 1 Zeile im log.
Ich füge Dir jetzt mal das Ergebnis vom Log ein. Der erste Durchlauf war mit der begrenzten Schleife, der 2. Durchlauf mit entferntem goto eof, also im Prinzip wie Du vorhin geschickt hast (ich habe meine Test´s aber bis auf ein paar wenige Verzeichnisse, 5-6, gelöscht, hatte keine Lust auf je 1900 Zeilen ) Beachte bitte auch das Datum im Dateinamen:

Datum: 03.08.2014 18:01:06,97
Datum: 03.08.2014 18:01:06,98 D:\Verzeichnis1
DatenBackup_2014_07_30_11_08_26


Datum: 03.08.2014 18:05:06,68
Datum: 03.08.2014 18:05:06,69 D:\Verzeichnis1
DatenBackup_2014_07_30_11_08_26
DatenBackup_2014_07_30_11_08_26
DatenBackup_2014_07_30_11_08_26
DatenBackup_2014_07_30_11_08_26
DatenBackup_2014_07_30_11_08_26
DatenBackup_2014_07_30_11_25_30
DatenBackup_2014_07_30_11_25_30
DatenBackup_2014_07_30_11_25_30
DatenBackup_2014_07_30_11_25_30
DatenBackup_2014_07_30_11_25_30
DatenBackup_2014_07_30_14_33_46
DatenBackup_2014_07_30_14_33_46
DatenBackup_2014_07_30_14_33_46
DatenBackup_2014_07_30_14_33_46
DatenBackup_2014_07_30_14_33_46
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_31_15_39_20

(dir /Ad /A-h /b /O-N wäre genau das richtige Ergebnis)

Zur Info: Es wird in Zukunft nur ein Backup pro Tag kopiert, also würde die Schleifenbegrenzung funktionieren, aber was ist, wenn es mal hakt? und was auch noch ist, es ist nicht richtig. Der Pedant
Hast Du noch eine Idee?

Gruss
Mick
Bitte warten ..
Mitglied: Endoro
03.08.2014 um 19:03 Uhr
Was stört genau? Die Doubletten und die Sortierung?
Gruss, Endoro
Bitte warten ..
Mitglied: mick111
03.08.2014, aktualisiert um 19:20 Uhr
die Doubletten. bei 1900 und mehr Zeilen verlierst du den Überblick, was eigentlich kopiert wurde. Es sind bei einem Backup ca. 80GB an Daten, wie viele Verzeichnisse möchte ich gar nicht wissen

Wenn Du mal mein Ergebnis ansiehst, dann wäre das hier genau das richtige.

Datum: 03.08.2014 18:01:06,98 D:\Verzeichnis1
DatenBackup_2014_07_30_11_08_26

Natürlich bei mehreren Backups so:

Datum: 03.08.2014 18:01:06,98 D:\Verzeichnis1
DatenBackup_2014_07_30_11_08_26
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_30_14_33_46

Hab mir schon überlegt, ob das ginge, wenn man das Ergebnis von DIR nimmt und der Schleife übergibt.
Sortierung ist Nebensache.

Gruss
Mick
Bitte warten ..
Mitglied: Endoro
04.08.2014 um 01:59 Uhr
Wenn du nichts kopieren möchtest:
01.
dir /ad-h /b /o-n /s D:\Daten > D:\Backup.log
Gruss, Endoro
Bitte warten ..
Mitglied: mick111
04.08.2014 um 16:15 Uhr
Hallo Endoro,

doch, schon kopieren. DIR oben ist kein Problem, das habe ich bei einem anderen Script schon.
(mein Wunsch: Xcopy mit der Darstellung von DIR, also eine Zeile pro Backup, das kriege ich nicht hin)

Ich habe eine Backup die kopiere ich, dann wäre das folgende Ergebnis ganz gut
das erhalte ich bereits, wenn ich die Schleife 1x laufen lasse:

Datum: 03.08.2014 18:01:06,98 D:\Verzeichnis1
DatenBackup_2014_07_30_11_08_26

Habe ich aber 2 und mehr Backups, die kopiert werden sollen, dann gibt es ein Problem mit meiner Schleife, da sie nur 1x durchläuft.
Werden 2 oder mehr Backups kopiert, dann wäre das Ergebnis wünschenswert:

Datum: 03.08.2014 18:01:06,98 D:\Verzeichnis1
DatenBackup_2014_07_30_11_08_26
DatenBackup_2014_07_31_15_39_20
DatenBackup_2014_07_30_14_33_46

Um 2 Uhr Nachts kam deine Antwort...., Du bist ja fast so schlimm wie ich


Gruss
Karlheinz
Bitte warten ..
Mitglied: mick111
23.08.2014 um 17:32 Uhr
Hallo Leute,

vielleicht könntet Ihr mir nochmal helfen.
Ich habe eine for Schleife, funktioniert auch soweit. Allerdings brauche ich eine Variable von dieser Schleife noch ein 2. Mal. Das müsste mit Setlocal doch gemacht werden, nur ich kriege das nicht auf die Reihe. Es geht um %%~a. Ich habe die in die Fehlerabfrage unten mal eingetragen, dort wo ich sie brauche.


for /f "tokens=3 delims=\" %%a in ('xcopy "%Quelle%%1" "%Ziel2%" /I /H /E /Y') do >>%Log% echo Kopiere %%~a ...& goto :eof2
:eof2

IF %Errorlevel% EQU 0 (
>>%Log% Echo %time% Backup %%~a erfolgreich kopiert
) Else (
>>%Log% Echo %time% Backup %%~a NICHT kopiert, Fehler %Errorlevel%
)

Danke Mick
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Tools
gelöst XCopy bei der Konsole von Windows(LOGFILE) funktioniert nicht! (8)

Frage von aitzi2811 zum Thema Windows Tools ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Batch & Shell
gelöst Powershell Verzeichnisse vergleichen mit Zwischenschritt (22)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Batch & Shell
gelöst Xcopy Batch-Datei (3)

Frage von Lauchheimer zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...