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-ID: 192363

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

Ausgedruckt am: 24.11.2024 um 17:11 Uhr

Dani
Dani 07.10.2012 um 22:29:32 Uhr
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
pieh-ejdsch
pieh-ejdsch 07.10.2012 aktualisiert um 22:44:15 Uhr
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