Batch Dateien verschieben, wenn der Dateiname in der Textdatei vorkommt

Tribo0n

Lt. Commander
Registriert
Okt. 2007
Beiträge
1.214
Hallo,
wie kann ich denn mit einer Batchdatei Dateien verschieben, die in einer Textdatei vorkommen? In der Textdatei stehen nur die Dateinamen ohne die Endung drin, jeweils alle untereinander.
Nehmen wir an, wir haben Datei123.jpg, Datei234.jpg, Datei345.jpg und Datei456.jpg in einem Ordner auf C:\Test liegen und in der Datei Test.txt in C:\Test steht Datei345 und Datei123 untereinander, dann soll er nur die beiden in den Unterordner C:\Test\Verschoben schieben.
Kann man das so machen?

Vielen Dank
 
Mit einer for schleife.

Code:
for /F "tokens=*" %%A in (myfile.txt) do [process] %%A

siehe: https://stackoverflow.com/questions...ine-in-a-text-file-using-a-windows-batch-file

Also konkret:
Code:
@echo off

set dateiliste=C:\datei\liste.txt
set quelle=C:\quelle
set ziel=C:\ziel

for /F "usebackq tokens=*" %%A in ("%dateiliste%") do ( move "%quelle%\%%A" %ziel% )
Ergänzung ()

Achso sorry. Da hab ich wohl zu schnell gelesen... habs falsch verstanden. Da muss ich später nochmal mal drüber nachdenken :). Man müsste die Dateien im Verzeichnis abfragen und die Namen in der Liste der Dateien durchgehen und mit "find" den Namenstring in dem Dateinamen überprüfen ... bei Treffer wird dann die Datei verschoben.

Das wird ne Doppelschleife. :)
 
Zuletzt bearbeitet:
Tribo0n schrieb:
Kann man das so machen?
Warum sollte das nicht gehen? Aber hast du auch mal selbst was versucht? Dich mal mit Powershell z.B. beschaeftigt?
Zudem muss man sagen, es gibt fast alles irgendwo schon im Internet, moeglicherweise nicht komplett der ganze Workflow, aber die Teilschritte. Man muss es dann nur noch zusammenstecken.
 
Hab schon gesucht, aber nichts passendes gefunden. Ich arbeite ein wenig mit Batch Dateien aber das ist so wie ich das hier sehe schon etwas zu kompliziert. Bin leider kein Programmierer.

Code:
set src_folder=C:\test
set dst_folder=C:\test\doppelt
for /f %%i in (C:\test\doppelt.txt) DO move "%src_folder%\%%i" "%dst_folder%\%%i"

Hab jetzt das hier zusammengebastelt. Leider muss die Endung in der txt stehen, die fehlt bei mir aber. ich bekomme es nicht hin das er die Dateiverschiebt wenn in der txt Datei die Endung fehlt. Soll wohl irgendwie mit ~n gehen.
 
Zuletzt bearbeitet:
Code:
set src_folder=C:\test
set dst_folder=C:\test\doppelt
for /f %%i in (C:\test\doppelt.txt) DO move "%src_folder%\%%i*" "%dst_folder%"
Hat nicht viel gefehlt. ;-)
 
Zurück
Oben