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, 3183 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch Datei Kopieren (17)

Frage von Frager zum Thema Batch & Shell ...

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 ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte