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

Kopierte Dateien per Batch vergleichen

Frage Entwicklung Batch & Shell

Mitglied: dobym24

dobym24 (Level 1) - Jetzt verbinden

07.08.2014, aktualisiert 10:54 Uhr, 1269 Aufrufe, 7 Kommentare

Hallo zusammen,
ich habe folgendes Problem und mittlerweile Tage im Internet verbracht um eine Lösung zu finden...Leider erfolglos

Ich habe eine cmd Batch mit der ich relevante Dateien und Ordner im Falle eines Festplattentausch auf die neue HD übernehme. Hierfür nutze ich xcopy mit diversen Parametern. Soweit klappt das super.
Und jetzt kommt mein Problem - auch wenn mir in meinem Log nicht zu kopierende / lesende Dateien von xcopy als solche ausgegeben werden möchte ich nach jedem Kopierblock einen Vergleich der Quell und Zieldatei in ein anderes Log schreiben. Derzeit nutze ich (noch) den Befehl fc , aber mit dem kann ich nur einen bestimmten Pfad prüfen und es werden keine Unterordner hierbei abgefragt.
Beispiel: C:\Ordner\ beinhalten 3 Ordner mit Namen 1, 2 und 3. Lasse ich den fc auf "Ordner" prüfen werden die Daten in den Unterordner nicht berücksichtigt. Ich weiß aber nicht im Vorfeld wie diese Unterordner heissen. Der Name variiert leider.

Problem 2: Ich muss einen Ordner kopieren dessen Name je nach Computer unterschiedlich ist
Beispiel: c:computer_1\diverse Unterordner nach x:computer_1\, bei einem anderen Rechner heisst dieser c:\computer_7911\diverse Unterordner.
Ich fuchse mich gerade ein wenig in cmd rein. Ich kann nicht mit Programmen arbeiten die installiert werden müssen.
Verzichten könnte ich noch auf das prüfen, aber nicht auf das kopieren.
Langsam verzweifel ich.
Danke für konstruktive Anregungen
Mitglied: killtec
07.08.2014 um 14:55 Uhr
Hi,
zum 2. erstmal: Heißen die Ordner wie die Computer?
Sprich heißt dein copmputer_7911 auch computer_7911? Falls ja könntest du das mit %computername% einpflegen.
Zu 1: weiß nicht genau ob das evtl. mit robocopy geht.

Gruß
Bitte warten ..
Mitglied: dobym24
07.08.2014 um 15:43 Uhr
Hallo Killtec,

um genau zu sein heißt der Order "Daten_xxxx". Die Zahl ist immer unterschiedlich. Das ich Computername geschrieben habe ist wohl etwas verwirrend.

Läuft robocopy auf XP ? Mein System kennt den Befehl nicht
Bitte warten ..
Mitglied: dobym24
07.08.2014 um 15:47 Uhr
Ich habe
xcopy /FKVEY x:\daten_?* c:\daten_*
probiert, aber er kopiert nur Haupt- mit Unterordner OHNE Inhalt.
Bitte warten ..
Mitglied: killtec
07.08.2014, aktualisiert um 15:51 Uhr
Robocopy kannst du einfach runterladen und ins system32 Verzeichnis kopieren. Dann funktioniert das auch bei XP

Edit:
Hier kannst du auch noch mal schauen.
http://www.heise.de/ct/hotline/Kopierte-Dateien-ueberpruefen-326742.htm ...

Gruß
Bitte warten ..
Mitglied: Friemler
09.08.2014 um 22:31 Uhr
Hallo dobym24,

schau Dir mal die Ausgabe des folgenden Scripts an. Der Code macht nichts sondern simuliert nur die Befehlsausführung. Evtl.löst das Dein Problem.

01.
@echo off & setlocal 
02.
 
03.
::Quell- und Zielpfad festlegen 
04.
set "CpySrcPath=Q:\Pfad\Zum\Quellverzeichnis" 
05.
set "CpyDstPath=Z:\Zielpfad" 
06.
 
07.
::Dateien kopieren 
08.
echo xcopy /options "%CpySrcPath%\*.*" "%CpyDstPath%"  
09.
 
10.
::Über die Quellverzeichnisstruktur iterieren und für jedes Verzeichnis 
11.
::das Unterprogramm ProcessDir aufrufen 
12.
for /d /r "%CpySrcPath%" %%d in (*) do ( 
13.
  call :ProcessDir "%%d" 
14.
15.
 
16.
exit /b 
17.
 
18.
 
19.
:ProcessDir 
20.
  ::Der Pfad des Quellverzeichnisses für den Vergleich kommt als 1. Parameter 
21.
  ::Der Pfad des Zielverzeichnisses für den Vergleich wird daraus erzeugt 
22.
  set "CmpSrcPath=%~1" 
23.
  call set "CmpDstPath=%CpyDstPath%%%CmpSrcPath:%CpySrcPath%=%%" 
24.
 
25.
  ::Testausgabe 
26.
  echo fc /b "%CmpSrcPath%\*.*" "%CmpDstPath%\*.*" 
27.
exit /b
Gruß
Friemler
Bitte warten ..
Mitglied: dobym24
12.08.2014 um 09:46 Uhr
hallo, ich habe mir jetzt mal robocopy angeschaut und für gut befunden, aber .......
ich google mir die finger wund. Robocopy kann nur bestimmte Dateien übernehmen / ausschliessen und bestimmete Prdner ausschließen.
Ich möchte aber einen bestimmten Ordner kopieren der bislang nur auf der Quelle vorhanden ist.
Bei Friemlers Lösung muss die Wuelle ja eindeutig benannt sein. Die weiß ich aber im Vorfeld nicht.
C:\Daten_ ist immer gleich. Danach kommt eine Zahl die immer variiert. Ich habe es mit Wildcarts versucht - finde aber keine Lösung, außer von Hand zu kopieren...........
Bitte warten ..
Mitglied: Friemler
12.08.2014 um 20:49 Uhr
Hallo dobym24,

irgendeine Gemeinsamkeit muss bei den zu kopierenden Verzeichnissen auf den verschiedenen Systemen schon bestehen, sonst ist es nicht möglich, einen Filter zu definieren, der überall das richtige Verzeichnis findet.

C:\Daten_ ist doch schonmal nicht schlecht. Wenn Die Zahl noch eine feste Anzahl Stellen hätte, wäre es perfekt. Bei 4-stelligen Zahlen könntest Du folgenden Schnipsel von einer Konsole aus verwenden:

dir /-p /b /a:d "C:\Daten_*.*" | findstr /i /r /b /c:"Daten_[0-9][0-9][0-9][0-9]"
Ansonsten bestünde auch noch die Möglichkeit, aus Deinem Batchscript heraus ein temporäres VBScript auf die Platte zu schreiben, in dem man per Regular Expressions nach Verzeichnissen sucht. Mehrere Varianten von so einem VBScript wurden hier erörtert.

Gruß
Friemler
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...