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 Per Batch Dateinamen prüfen und Datei kopieren

Mitglied: rekrut

rekrut (Level 1) - Jetzt verbinden

21.08.2007, aktualisiert 24.08.2007, 9642 Aufrufe, 10 Kommentare

Hallo zusammen,

folgendes Problem hab ich zu lösen, und nicht wirklich eine Ahnung wo (und vorallem wie) ich anfangen soll ;)

Ich habe eine Excel Liste mit ca. 800 Dateinamen (z.B. M123456). Diese Dateinamen sind im Netzwerk auf dem Fileserver in den unterschiedlichsten Ordnern als PDF Dateien abgelegt.

Ich muss nun alle diese Dateien aus den Verzeichnissen herauskopieren und in ein eigenes Verzeichniss ablegen.

xcopy kenne ich, aber wie bringe ich dem batch bei alle unterverzeichnisse zu durchsuchen?


Danke für Eure Bemühungen.

Gruss rekrut
Mitglied: TuXHunt3R
21.08.2007 um 15:14 Uhr
Alle 800 Dateien in das gleiche Zielverzeichnis?
Bitte warten ..
Mitglied: rekrut
21.08.2007 um 15:18 Uhr
ja, alle Dateien kommen am schluss in das selbe verzeichnis.
Bitte warten ..
Mitglied: bastla
21.08.2007 um 17:54 Uhr
Hallo rekrut und willkommen im Forum!

Du könntest es mit folgende Vorgangsweise versuchen:
Zunächst aus Excel die Dateiliste mit "Datei/Speichern unter..." mit dem Dateityp "CSV(Trennzeichen-getrennt)" in eine Textdatei (D:\Dateien.txt) speichern. Wenn die Liste nur die Dateinamen enthält, sollte sie eigentlich ohnehin nur eine Spalte umfassen - falls es zusätzliche Spalten gibt, diese vor dem Speichern löschen.

Danach mit der folgenden Batch-Datei eine Liste aller gespeicherten pdf-Dateien (im Beispiel für die Laufwerke D: und E: - ev weitere nach dem gleichen Schema wie für E: hinzufügen ) erstellen (damit nicht für jede der 800 Dateien immer die gesamten Laufwerke durchsucht werden müssen), die aus Excel gespeicherte Liste der Dateien durchgehen, in der PDF-Liste für jede Datei den Dateipfad suchen, und anhand des Pfades die Datei in ein Sammelverzeichnis kopieren:
01.
@echo off & setlocal 
02.
dir /s /b D:\*.pdf>D:\Liste.txt 
03.
dir /s /b E:\*.pdf>>D:\Liste.txt 
04.
 
05.
if not exist D:\Sammelverzeichnis md D:\Sammelverzeichnis 
06.
if exist D:\Protokoll.txt del D:\Protokoll.txt 
07.
 
08.
for /f "delims=" %%i in (D:\Dateien.txt) do call :ProcessFile "%%i.pdf" 
09.
goto :eof 
10.
 
11.
:ProcessFile 
12.
for /f "delims=" %%d in ('findstr /e /i "%~1" D:\Liste.txt') do set "Pfad=%%d" 
13.
echo %Pfad%>>D:\Protokoll.txt 
14.
copy "%Pfad%" D:\Sammelverzeichnis>nul 
15.
goto :eof
Aufgrund Deines Beispieles (M123456) bin ich davon ausgegangen, dass in der Excel-Liste der reine Namensbestandteil (also ohne den Typ .pdf) gespeichert ist - sollte dem nicht so sein, muss die erste "for"-Zeile so aussehen:
01.
for /f "delims=" %%i in (D:\Dateien.txt) do call :ProcessFile "%%i"
Zusätzlich wird in einer Protokolldatei der vollständige Pfad der kopierten Dateien festgehalten.

Eine Anmerkung: Wenn mehrere gleichnamige Dateien in der PDF-Liste aufscheinen, wird nur die letzte dieser Dateien kopiert (da ja ohnehin für das Sammelverzeichnis gilt: Es kann nur eine geben ...).

Grüße
bastla
Bitte warten ..
Mitglied: TuXHunt3R
21.08.2007 um 21:12 Uhr
Da bist du mir zuvor gekommen. So ähnlich hätte ich es auch gemacht.
Bitte warten ..
Mitglied: rekrut
22.08.2007 um 08:20 Uhr
Danke vielmals! Schön wie schnell einem hier geantwortet wird


Werde es gleich heute probieren und dann natürlich ein Feedback geben obs auch geklappt hat.

Gruss

rekrut
Bitte warten ..
Mitglied: rekrut
24.08.2007 um 11:54 Uhr
also, bin jetzt endlich dazu gekommen

hat leider noch nicht ganz funktioniert!

Problem, die Datein haben am Schluss noch ein Anhängsel:

D:\data\_PDF\M100\M10027500 E.pdf
D:\data\_PDF\M101\M10102903 B.pdf
D:\data\_PDF\M101\M10103001 B.pdf
D:\data\_PDF\M101\M10103004 A.pdf

Ich habe zwar versucht, die Batch Datei daran anzupassen, er kopiert jedoch nur pdf's mit dem identischen Dateinamen ... Beispiel:

D:\data\_PDF\Spezifikationsblaetter Elektrisch\W65002120.pdf

Wie könnte da die Lösung aussehen?


Hier noch meine angepasste Batch:

Liste.txt erstellt er korrekt
Sammelverzeichnis und Protokoll ebenfalls

*
@echo off & setlocal
dir /s /b D:\data\_PDF\*.pdf>D:\Liste.txt


if not exist D:\Sammelverzeichnis md D:\Sammelverzeichnis
if exist D:\Protokoll.txt del D:\Protokoll.txt

for /f "delims=" %%i in (D:\Dateien.txt) do call :ProcessFile "%%i*.pdf"

pause

goto :eof

:ProcessFile
for /f "delims=" %%d in ('findstr /e /i "%~1" D:\Liste.txt') do set "Pfad=%%d"
echo %Pfad%>>D:\Protokoll.txt
copy "%Pfad%" D:\Sammelverzeichnis>nul
goto :eof
**

thx für eure Bemühungen.

gruss rekrut
Bitte warten ..
Mitglied: bastla
24.08.2007 um 14:02 Uhr
Hallo rekrut!

Dann eben ohne den Schalter "/e" beim "findstr":
01.
@echo off & setlocal 
02.
dir /s /b /a-d D:\data\_PDF\*.pdf>D:\Liste.txt 
03.
 
04.
if not exist D:\Sammelverzeichnis md D:\Sammelverzeichnis 
05.
if exist D:\Protokoll.txt del D:\Protokoll.txt 
06.
 
07.
for /f "delims=" %%i in (D:\Dateien.txt) do call :ProcessFile "%%i" 
08.
 
09.
pause 
10.
 
11.
goto :eof 
12.
 
13.
:ProcessFile 
14.
for /f "delims=" %%d in ('findstr /i "%~1" D:\Liste.txt') do set "Pfad=%%d" 
15.
echo %Pfad%>>D:\Protokoll.txt 
16.
copy "%Pfad%" D:\Sammelverzeichnis>nul 
17.
goto :eof
Den genannten Schalter (zur Suche am Ende des Pfades) hatte ich aus Sicherheitsgründen gesetzt, damit wirklich nur eine Übereinstimmung mit einem Dateinamen, und nicht ev auch mit dem Namen eines Verzeichnisses, in dem dann aber eine ganz andere pdf-Datei liegt, möglich wäre (auch wenn es vermutlich eher selten Verzeichnisnamen mit dem Zusatz ".pdf" gibt).

Nur zur Sicherheit: In der Excelliste steht am Ende des Dateinamens kein ".pdf"? Falls nämlich doch, hätten wird jetzt das umgekehrte Problem, diesen Teil vor dem Vergleichen abschneiden zu müssen ...

Grüße
bastla

P.S.: Geposteter Programmcode wird übrigens (wie ich meine) leserlicher, wenn er zwischen < code> und < /code> (jeweils ohne Leerzeichen) steht ...
Bitte warten ..
Mitglied: rekrut
24.08.2007 um 14:12 Uhr
Hallo bastla,

nein in der Excel Liste hats kein .pdf beim Dateinamen.

werde es gleich ausprobieren! danke noch für den Hinweis!



Gruss

rekrut
Bitte warten ..
Mitglied: rekrut
24.08.2007 um 15:11 Uhr
sooo es hat funktioniert!

Danke vielmals für die kompetente und schnelle Hilfe!

Wünsche noch ein schönes Wochenende!


Grüsse aus der Schweiz

rekrut
Bitte warten ..
Mitglied: bastla
24.08.2007 um 15:15 Uhr
Hallo rekrut!

Freut mich.

Ehe Du Dich ins Wochenende begibst, könntest Du dem Beitrag vielleicht noch einen dieser attraktiven grünen "Erledigt"-Haken verpassen ... [Edit] Danke. [/Edit]

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Datei um Dateinamen auf Duplikat mit anderer Dateiendung zu prüfen und falls nicht die Datei zu löschen

gelöst Frage von PCdummyBatch & Shell2 Kommentare

Hallo liebe Profis, wenn ich mal fotografieren gehe habe ich immer .CR2 Dateien und .jpg Dateien. Nun gehe ich ...

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 für Dateinamen

gelöst Frage von Sabi75Batch & Shell19 Kommentare

Hallo zusammen, ich bräuchte mal eure Hilfe. Ich nutze einen Windows 7 PC und ein Apple Ipad wenn ich ...

Windows Systemdateien

Batch Datei- Dateien kopieren in verschiedene Ordner, Pfad aus Dateiname

gelöst Frage von 11benny86Windows Systemdateien2 Kommentare

Hallo liebes Forum, ich hab schon das ein oder andere mal mit Batch-Dateien gebastelt, meistens Gott sei dank mit ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 7 StundenVerschlüsselung & Zertifikate1 Kommentar

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 2 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 2 TagenHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 2 TagenSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Heiß diskutierte Inhalte
Netzwerke
Hilfe bei der Planung meines Heimnetzwerks
Frage von DHD082Netzwerke14 Kommentare

Hallo zusammen, wir bauen gerade ein Einfamilienhaus, welches ich mit einem Heimnetzwerk ausstatten möchte. Da ich zwar auch in ...

Tipps & Tricks
Nagstamon und PRTG Monitoring
Frage von Der.ITlerTipps & Tricks13 Kommentare

Hallo Ihr, heute am Sonntag bin ich mal früh aufgestanden um mich mit dem Problem von Gestern zu beschäftigen. ...

Hardware
Sophos SG135 - Routing
Frage von Xaero1982Hardware13 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

Datenschutz
Gilt ein Ransomware-Befall als Datenpanne nach DSGVO?
Frage von MOS6581Datenschutz12 Kommentare

Moin Kollegen, wenn sich jemand Ransomware einfängt und dadurch bspw. Kundendaten verschlüsselt werden; gilt dies dann als meldepflichtige Datenpanne ...