Top-Themen

Aktuelle Themen (A bis Z)

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, 3405 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
In Batch auf Erstelldatum einer Datei prüfen
gelöst Frage von AS-N00Batch & Shell5 Kommentare

Hallo, foolgendes Problem. Ich muss eine leer Datei "dpd.ini" in "d:\bw50" erstellen, wenn in einem Ordner "d:\bw50\dpd\export\" es keine ...

Batch & Shell
Batch Datei Kopieren
gelöst Frage von FragerBatch & Shell17 Kommentare

Hallo Zusammen, ich bekomme es nicht hin ich muss aus einem Ordner (liegt auf einem Server) eine von vielen ...

Batch & Shell
Batch: Loop zum kopieren von Dateien
gelöst Frage von BiffBaffBatch & Shell1 Kommentar

Hallo zusammen, leider bin ich nicht sehr vertraut mit dem erstellen von Batch dateien daher mag die Frage vielleicht ...

Batch & Shell
Batch - Kopieren von Dateien in Userhome
gelöst Frage von BellociBatch & Shell2 Kommentare

Hallo liebe Admins, ich würde sehr gerne einige Dateien unterschiedlichster Form (txt, html, wahrscheinlich in der Zukunft wachsend) in ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...