driver78
Goto Top

Ordner durchsuchen und Dateien Verschieben

Ich möchte per Batch Verzeichnisse durchsuchen lassen und einen Bestimmten Dateityp verschieben.

Guten Abend,

vielleicht kann mir ein von euch weiterhelfen. Und zwar knobel ich an folgender Aufgabe.

Ich möchte Verzeichnisse per Batch durchsuchen lassen und einen bestimmten Dateityp verschieben. Dafür lasse ich eine Temporäre txt Datei erstellen wodrin der Pfad reingeschrieben wird.

Wenn ich dann die Dateien Verschieben lasse, die in der txt Datei drinnen stehen, kann er aber nur diese verschieben, wo im Ordner Name kein Leerzeichen drin steht.
Zwar habe ich dafür auch eine Lösung im Netz gefunden. Wie ich es dann doch noch schaffe.
Doch irgendwie gefällt es mir noch nicht, weil ich glaube das es auch einfacher geht.

dir /b /s "j:\test\*.txt" > Dateien.txt  
FOR /f "delims=;" %%f IN (Dateien.txt) DO @set crc=%%f  
move "%crc%" j:\test\D   
for /f %%i in (Dateien.txt) do (move %%i j:\test\D)
del Dateien.txt

Content-Key: 192363

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

Printed on: April 19, 2024 at 02:04 o'clock

Member: Dani
Dani Oct 07, 2012 at 20:29:32 (UTC)
Goto Top
Moin,
die Zeile 1-3 kann ich noch nachvollziehen. Für was benötgist du Zeile 4 und 5?!
Was mir noch auffällt, was machst du wenn ein Dateiname zweimal auftaucht? Denn die Verzeichnisstruktur übernimmst du nicht im Zielpfad.

Des Weitern würde ich behaupten, dass du eine "Schleife" im Script hast. Dein Zielpfad (j:\test\D) ist im Suchpfad () enhalten, da du bei "dir ... /s" angegeben hast.


Grüße,
Dani
Member: pieh-ejdsch
pieh-ejdsch Oct 07, 2012 updated at 20:44:15 (UTC)
Goto Top
moin Driver,

die For /r Schleife bietet Dir gleich die Ausgabe an, welche Du mit erstellen der TXT machst.
Anführungszeichen maskieren die Sonderzeichen in Dateinamen.
Als Test auf der CMD-Line:
for /r "J:\test" %i in (*.txt) do @echo move "%~i" "J:\test\D"

Zum Testen mit echo.

Gruß Phil