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 kopieren und prüfen

Frage Entwicklung Batch & Shell

Mitglied: Megadingz

Megadingz (Level 1) - Jetzt verbinden

26.02.2013 um 16:42 Uhr, 3089 Aufrufe, 4 Kommentare

Hallo,

ich hab ein Script was schaut ob Dateien in einem Ordner sind. Wenn ja soll es diese in einen anderen Ordner kopieren.

Script

set foldername=eins
set count=0
for %%i in (%foldername%\*) do set /a count+=1
if "%count%"=="0" GOTO :ENDE
xcopy %foldername%\*.* Server\%foldername% /S /E /C /R /V


Das funktioniert.
Jetzt möchte ich die kopierten Dateien überprüfen. Also sichergehen das die Datei kopiert worden ist. Dazu müsste ich die Dateinamen in der "for" Schleife in Variablen speichern und dann mit "If exists" prüfen.

Ich weiß nicht wie ich in der Schleife jetzt eine Variable hochzähle. Ich denke da an sowas wie ein Array, aber das gibt es ja bei Batch nicht. (oder?)
Irgendwie weis ich nicht weiter, über eine Hilfestellung würde ich mich freuen.


Grüße
Michael


Mitglied: bastla
26.02.2013 um 18:11 Uhr
Hallo Megadingz und willkommen im Forum!

Eine Frage vorweg: Du verwendest für das Kopieren die Option "/E" (und überflüssiger Weise auch "/S") - ist daraus zu schließen, dass es nicht nur um den angegebenen Ordner ("eins") geht, sondern auch Unterordner zu berücksichtigen sind?

Außerdem: Genügt eine einfache Existenzprüfung im Zielordner? Ich würde im Fall des Falles eher eine Prüfsumme (zB MD5) verwenden, um sicher zu stellen, dass die kopierten Dateien tatsächlich identisch mit den Quelldateien sind ...

Grüße
bastla
Bitte warten ..
Mitglied: Megadingz
26.02.2013 um 19:35 Uhr
Hallo Bastla,

die Optionen /E und natürlich auch /S kann man weglassen.
Da hab ich nicht aufgepasst. Es reicht wenn nur die Dateien kopiert werden.
Der Ordner auf dem Server hat den gleichen Namen wie auf der lokalen Festplatte. Es soll geschaut werden ob Dateien enthalten sind und wenn ja sollen diese auf den Server kopiert und anschließend gelöscht werden.

Eine Prüfsumme wäre gut aber nicht zwingend notwendig,es handelt sich nur um TV-Aufnahmen. Wenn da mal eine nicht richtig kopiert wird ist das nicht ganz so schlimm.

Wenn ich die Dateinamen nur irgendwie in Variablen bekommen würde um sie dann zu prüfen,das wär schon ok.



Grüße
Michael
Bitte warten ..
Mitglied: bastla
26.02.2013, aktualisiert um 20:59 Uhr
Hallo Megadingz!
die Optionen /E und natürlich auch /S kann man weglassen.
Wenn auch der Zielordner bereits existiert, brauchst Du noch nicht mal "xcopy" (kannst es aber natürlich trotzdem verwenden) ...

Könnte dann (ungetestet) etwa so gehen:
01.
@echo off & setlocal 
02.
set "foldername=eins" 
03.
set "target=\\Server\%foldername%" 
04.
 
05.
dir /w /a-d "%foldername%" >nul 2>nul && ( 
06.
    copy "%foldername%" "%target%\" >nul 
07.
    for /f "delims=" %%i in ('dir /b/a-d "%foldername%"') do if exist "%target%\%%~nxi" echo del "%%i" 
08.
09.
pause
Das Löschen der kopierten Dateien ist (durch das "echo" vor dem "del") noch deaktiviert bzw wird durch Anzeigen des Löschbefehls simuliert - wenn Du das "echo" entfernst, wird auch gelöscht.

Achtung - ev vorhandene gleichnamige Dateien im Zielordner werden beim Kopieren kommentarlos überschrieben!

Dateien aus dem Quellordner, die nach dem Kopieren im Zielordner nicht gefunden wurden, bleiben einfach in der Quelle erhalten.

Grüße
bastla
Bitte warten ..
Mitglied: Megadingz
27.02.2013 um 14:07 Uhr
Hallo Bastla,

ja super. Vielen Dank. Das hat funktioniert. Es fehlte nur vor dem "del" nochmals %foldername%.

Ich muss mal ein paar Tutorials zum dem Thema lesen. Ich kapiere nicht alles von dem was du da gemacht hast.


Grüße

Megadingz
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
Dateien kopieren die nicht mehr verändert werden? (10)

Frage von pbelcl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...