Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Per Batch Dateinamen prüfen und Datei kopieren

Mitglied: rekrut
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

Content-Key: 66714

Url: https://administrator.de/contentid/66714

Ausgedruckt am: 25.10.2021 um 03:10 Uhr

Mitglied: TuXHunt3R
TuXHunt3R 21.08.2007 um 15:14:34 Uhr
Goto Top
Alle 800 Dateien in das gleiche Zielverzeichnis?
Mitglied: rekrut
rekrut 21.08.2007 um 15:18:52 Uhr
Goto Top
ja, alle Dateien kommen am schluss in das selbe verzeichnis.
Mitglied: bastla
bastla 21.08.2007 um 17:54:52 Uhr
Goto Top
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:
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:
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
Mitglied: TuXHunt3R
TuXHunt3R 21.08.2007 um 21:12:36 Uhr
Goto Top
Da bist du mir zuvor gekommen. So ähnlich hätte ich es auch gemacht.
Mitglied: rekrut
rekrut 22.08.2007 um 08:20:12 Uhr
Goto Top
Danke vielmals! Schön wie schnell einem hier geantwortet wird :) face-smile


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

Gruss

rekrut
Mitglied: rekrut
rekrut 24.08.2007 um 11:54:58 Uhr
Goto Top
also, bin jetzt endlich dazu gekommen :) face-smile

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
Mitglied: bastla
bastla 24.08.2007 um 14:02:56 Uhr
Goto Top
Hallo rekrut!

Dann eben ohne den Schalter "/e" beim "findstr":
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 ...
Mitglied: rekrut
rekrut 24.08.2007 um 14:12:16 Uhr
Goto Top
Hallo bastla,

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

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



Gruss

rekrut
Mitglied: rekrut
rekrut 24.08.2007 um 15:11:55 Uhr
Goto Top
sooo es hat funktioniert! ;-) face-wink

Danke vielmals für die kompetente und schnelle Hilfe!

Wünsche noch ein schönes Wochenende!


Grüsse aus der Schweiz

rekrut
Mitglied: bastla
bastla 24.08.2007 um 15:15:39 Uhr
Goto Top
Hallo rekrut!

Freut mich. :-) face-smile

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
Heiß diskutierte Beiträge
question
Realistische Zeiterfassung für undisziplinierten Mitarbeiter? gelöst istike2Vor 18 StundenFrageWindows 1014 Kommentare

Hallo, ab Januar bin ich fest angestellt und wurde mir u. A. mitgeteilt, dass wir die Arbeitszeiten in einem Android-App erfassen sollen. Soweit OK. Das ...

question
Browserverhalten bei nicht offizieller TLD im privaten NetzSiegfried36Vor 1 TagFrageDNS21 Kommentare

Moin, ich hoffe ihr könnt mir helfen Licht ins Dunkel zu bringen. So ganz verstehe ich diesen ganzen Zusammenhang nicht. Ich will in meinem internen ...

question
PC zeigt kein Bild mehrben1300Vor 1 TagFrageHardware14 Kommentare

Hallo zusammen, mein PC geht zwar noch an (LED leuchten und Lüfter laufen), aber ich erhalte kein Bild mehr. Mainboard: MSI B450M Mortar Max Mainboard ...

question
Netzwerkproblem Feuerwehr EinsatzleitfahrzeugTorstenWeVor 19 StundenFrageNetzwerke3 Kommentare

Hallo Zusammen, Ich bin Mitglied in einer Feuerwehr mit einem Einsatzleitwagen. In diesem LKW sind mehre Computer-Arbeitsplätze mit einem eigenen Netzwerk verbaut. Wir haben ein ...

question
JBOD - Platte kopieren möglich? gelöst DoKi468Vor 1 TagFrageFestplatten, SSD, Raid2 Kommentare

Hallo zusammen, eine Frage: Ich habe eine Synology NAS und habe dort ein JBOD eingerichtet mit 2 4TB Platten Allerdings springt bei einer Platte teilweise ...

question
Benötige Empfehlung für Komponenten - Umstieg von Ubiquiti auf welches System??Dominik187Vor 7 StundenFrageNetzwerke13 Kommentare

Guten Tag liebe Community, aktuell habe ich einige Produkte von Ubiquiti im Einsatz und überlege, das System zu wechseln, denn leider habe ich mich schon ...

question
Mit SSH auf Android - Fehler mit "mount"PeterGygerVor 19 StundenFrageNetzwerke16 Kommentare

Hallo Ich bin über SSH auf einem Android Device (Nvidia Shield). Das Device funktioniert im LAN. D.h. der Zugriff auf Dateien auf dem NAS über ...

question
Wordpress bereitstellenWolf6660Vor 15 StundenFrageHosting & Housing7 Kommentare

Hi, ich habe eine Domain ohne Webspace gekauft und diese auf meine IP umgeleitet. Nun würde ich gerne eine Wordpress Seite erstellen und diese Online ...