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
GELÖST

Batch Dateien prüfen und kopieren

Frage Entwicklung Batch & Shell

Mitglied: hoerms76

hoerms76 (Level 1) - Jetzt verbinden

24.03.2009, aktualisiert 18.10.2012, 7663 Aufrufe, 16 Kommentare

Ich habe ein Problem!
Ich will ein Batch schreiben, welches Dateien im Netzwerk mit Dateien auf C: vergleicht, wenn die Dateien identisch sind (speicherdatum komplett gleich)passiert nichts wenn Speicherdatum jünger oder älter ist, oder die Datei in c: nicht existiert wird sie vom Laufwerk auf c: kopiert. Mit xcopy bekomme ich es nicht hin, weil dort nur ältere Dateien aktualisiert werden können!
Wer kann mir ein bischen unter die arme greifen?
Mitglied: Woolfsmann
24.03.2009 um 08:15 Uhr
Hi,

mit robocopy müste es gehen

befehle müste ungefähr so aussehen

robocopy <quelle> <ziel> /MIR

robocopy kann es sicher bin mir nur nicht sicher ob die optionen stimmen. Kannst du aber in dem Link nachlesen
http://www.wintotal.de/Artikel/robocopy/robocopy.php

gruß
Bitte warten ..
Mitglied: manuel-r
24.03.2009 um 09:50 Uhr
Weil "einfach" einfach immer gut ist würde ich - wenn die fraglichen Datein nicht etliche MB/GB groß sind - pauschal immer kopieren. Macht am wenigsten Mühe und funktioniert zuverlässig. Ansonsten halt wie schon angesprochen Robocopy.

Manuel
Bitte warten ..
Mitglied: hoerms76
24.03.2009 um 11:13 Uhr
Ich will halt gerade vermeiden, das immer 200MB aus dem Netzwerk kopiert werden! Deshalb nur die geänderten Dateien. Es kann aber auch sein ein User hat die Datei auf seinem Rechner geändert, deshalb wenn Datei gleich ist nicht kopieren, ansonsten schon! Robocopy ist schlecht , weil wir mit NT arbeiten!

Vielleicht noch ne Lösung?

Gruß Hoerms76
Bitte warten ..
Mitglied: manuel-r
24.03.2009 um 11:21 Uhr
Wie wäre es alternativ mit xcopy und der Option /D:d-m-j
Für das Datum setzt du das Datum des letzten Kopiervorgangs. Das sollte funktionieren denke ich.

Manuel
Bitte warten ..
Mitglied: hoerms76
24.03.2009 um 11:40 Uhr
tut mir leid wenn ich nerve, aber er kopiert dann zwar wenn auf dem Laufwerk eine neuere Datei liegt als auf dem rechner, aber es kann sein das ein User irgendwas in der Datei auf dem Rechner ändert, dann muß trotzdem vom Laufwerk kopiert werden, und auf c: überschrieben, also hatte ich gedacht vorab die dateien mit FC vergleichen, und dann bei unterschieden kopieren. Ich komm halt mit dem Batch nicht weiter...

Gruß Hoerms76
Bitte warten ..
Mitglied: manuel-r
24.03.2009 um 11:53 Uhr
Dann probier's mal mit
01.
fc /b <quelle>\datei.xyz <ziel>\datei.xyz 
02.
if errorlevel 1 copy /y <quelle>\datei.xyz <ziel>\datei.xyz
Bitte warten ..
Mitglied: hoerms76
24.03.2009 um 11:58 Uhr
klingt schon mal gut, und jetzt noch für alle Dateien in einem Ordner ?
Wäre super!!
Gruß Hoerms76
Bitte warten ..
Mitglied: manuel-r
24.03.2009, aktualisiert 18.10.2012
Ich hab für dich mal die Forensuche bemüht und einen Beitrag gefunden, der dir dabei bestimmt hilft.
Bitte warten ..
Mitglied: miniversum
24.03.2009 um 19:45 Uhr
Mal ne ungetestete Skizze wie es geht:
01.
set "hdd=C:\ordner" 
02.
set "netz=x:\ordner" 
03.
xcopy /d "%netz%\*.*" "%hdd%" 
04.
FOR /F "delims=" %%i in ('xcopy /L /d "%hdd%\*.*" "%netz%"') do copy /y "%netz%\%%~nxi" "%hdd%"
Oder mit der FC Lösung:
01.
set "hdd=C:\ordner" 
02.
set "netz=x:\ordner" 
03.
xcopy /d "%netz%\*.*" "%hdd%" 
04.
FOR /F "delims=" %%i in ('dir /b "%netz%\*.*"') do fc /b "%netz%\%%i" "%hdd%\%%i" >NUL 2>NUL || copy /y "%netz%\%%i" "%hdd%"
Bitte warten ..
Mitglied: hoerms76
26.03.2009 um 10:41 Uhr
Super! Mit Xcopy-Befehl klappt alles gut!
Ich möchte jetzt nur noch vorab mein "hdd" bereinigen.
Das heißt alle Dateien die es im Laufwerk nicht mehr gibt, aber auf hdd löschen.
kann ich das vorab noch einbauen?

Gruß Hoerms76
Bitte warten ..
Mitglied: miniversum
26.03.2009 um 17:41 Uhr
Dann füge vor der 4. Zeile folgende Zeile ein:
01.
FOR /F "delims=" %%i in ('dir /B "%hdd%"') do if not exist "%netz%\%%~nxi" ECHO del "%hdd%\%%~nxi"
Das ganze ist ungetestet! Daher ist das ECHO drin. Du sieht dann also was er macht. Sieht das gut aus einfach das ECHO weglassen.
Bitte warten ..
Mitglied: hoerms76
27.03.2009 um 16:10 Uhr
Echt klasse!! Batch läuft! Danke!
ich hab ihn folgender maßen zusammengefügt:

set "hdd=c:\123v5w\testordner"
set "netz=c:\123v5w\testlaufwerk"

xcopy "%netz%" /d /y /i /f "%hdd%"
For /f "delims=" %%i in ('dir /b "%hdd%"') do if not exist "%netz%\%%~nxi" del "%hdd%\%%~nxi"
For /f "delims=" %%i in ('xcopy "%hdd%" /y /l /d "%netz%"') do copy /y "%netz%\%%~nxi" "%hdd%"

Er bring nur bei der letzten Zeile eine Fehlermeldung weil er logischerweise beim xcopy die Zeile "1 Datei kopiert" nicht findet, kann ich das noch abstellen, dann wär es wirklich perfekt!
Bitte warten ..
Mitglied: miniversum
27.03.2009 um 18:03 Uhr
Ändere die Letzte Zeile von
For /f "delims=" %%i in ('xcopy "%hdd%" /y /l /d "%netz%"') do copy /y "%netz%\%%~nxi" "%hdd%"
in
For /f "delims=" %%i in ('xcopy "%hdd%" /y /l /d "%netz%"^|findstr /V /E "Datei(en) kopiert"') do copy /y "%netz%\%%~nxi" "%hdd%"
Dann sollte die Meldung nicht mehr kommen.
Bitte warten ..
Mitglied: hoerms76
30.03.2009 um 10:09 Uhr
ich bin begeistert !!
Danke nochmal!
Gruß Hoerms76
Bitte warten ..
Mitglied: hoerms76
01.04.2009 um 15:00 Uhr
Hi, ich hätte gern noch ne kleine Hilfe:

Bevor mein Batch läuft würde ich gern eine Datei mit einer anderen vergleichen, wenn sie identisch sind macht das Batch nichts, ansonsten siehe oben.

FC /b "%netz%"\protokol.xls "%hdd%"\protokol.xls
IF not errorlevel 1 goto ende

ich hab das so gelöst, das klappt auch, ich möchte nur die FC "Ausgaben" nicht sehen. geht das irgendwie?

Gruß hoerms76
Bitte warten ..
Mitglied: miniversum
01.04.2009 um 18:06 Uhr
Mit > kannst du die ausgaben umleiten.
>NUL leitet Ausgaben ins "Nichts" um.
2>leitet Fehlermeldungen um.
Daraus ergibt nicht das:
01.
FC /b "%netz%"\protokol.xls "%hdd%"\protokol.xls >NUL 2>NUL 
02.
IF not errorlevel 1 goto ende
PS: das ende kanst du dir sparen. Es gibt noch die Spungmarke :eof die imemr ans ende der Datei führt. Die brauchst ud auch nicht extra hinzuschreiben.
01.
FC /b "%netz%"\protokol.xls "%hdd%"\protokol.xls >NUL 2>NUL 
02.
IF not errorlevel 1 goto:eof
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
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 ...