mippsel
Goto Top

Kopieren von Dateien aus .txt Liste

Hallo zusammen,

ich habe folgendes Problem:

Von den über 2000 pdf/docx Dateien würde ich mir gerne gewisse Dateien in einen extra Ordner kopieren. Dazu habe ich mir eine dokumente.txt mit den jeweiligen Dateinamen erstellt (in jeder Zeile ein Dateiname).
Nun wollte ich per .bat Datei und folgendem Code

@echo off & setlocal 
for /f "usebackq delims=" %%i in ("C:\entsprechender Pfad\dokumente.txt") do copy "%%i" "C:\entsprechender Pfad\" >nul


mir die entsprechenden Dateien kopieren lassen. Ich bekomme jedoch die Rückmeldung ""%%i" kann syntaktisch an dieser Stelle nicht verarbeitet werden."

Was mach ich falsch?

Content-Key: 279425

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

Printed on: April 18, 2024 at 04:04 o'clock

Member: rubberman
rubberman Aug 06, 2015 updated at 14:49:28 (UTC)
Goto Top
Hallo mippsel, willkommen im Forum.

Aus der Hüfte geschossen würde ich denken, einige der Pfade in deiner Datei sind bereits in Anführungszeichen eingefasst. Teste:
... do copy "%%~i" "C:\entsprechender Pfad\"

Grüße
rubberman
Member: mippsel
mippsel Aug 07, 2015 updated at 09:11:39 (UTC)
Goto Top
Danke für deine Antwort.

Ich habe es nun mit
@echo off & setlocal 
for /f "usebackq delims=" %i in ("C:\Users\...\Desktop\test\dokumente.txt") do copy "%%~i" "C:\Users\...\Desktop\test\Literatur"  

probiert, das System kann die angegebenen Dateien aber nicht finden. Zur Ordnerstruktur:
Alle Dateien befinden sich in Desktop\test (ebenso die dokumente.txt und die auszuführende .bat Datei). Im \test\ befindet sich noch \Literatur\, dort sollen die Dateien aus der dokumente.txt hin kopiert werden. Die Namen die in der dokumente.txt stehen, stimmen mit den Dateinamen überein (Format: In jeder Zeile steht der Filename, bspw. Darkwing_Duck.pdf).

Wo versteckt sich der Wald zwischen all den Bäumen?

Edit:
Bei der Zuordnung der Dateipfade scheint es Probleme zu geben.
Mit
@echo off
FOR /F "delims=" %a IN (C:\Users\...\Desktop\test2\dokumente.txt) DO COPY "%%~a"  "C:\Users\...\Desktop\test2\kopieren\%%~nxa"  
erscheint als Ausgabe:

%C:\Users\...\Desktop\test2\epr.pdf
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
0 Datei(en) kopiert.


Ich denke das % ist Schuld daran, dass er die Datei nicht finden kann. Wie kann ich das Problem lösen?


Edit 2:

Ich hab die Lösung gefunden:
Da ich nicht jedesmal Lust hatte die .bat Datei zu bearbeiten und neu zu speichern, habe ich die Befehle erst in der cmd Umgebung ausprobiert. Anscheinend kann cmd jedoch nicht mit %%a umgehen, weswegen ich kurzerhand das das doppelte % weggelassen hab. Das führt aber anscheinend zu Unstimmigkeiten bei der Pfadzuweisung.
Wenn ich es mit %%a in eine .bat Datei schreibe und ausprobiere, funktioniert es einwandfrei.
Sorry für den Anfängerfehler ._.