laienkoenig
Goto Top

MOVE mit Zugriff auf txt-Datei?

Hallo, zusammen! Nachdem ich jetzt schon meterlang gesucht habe, muss ich doch einmal einen eigenen Beitrag formulieren...

Ich versuche, rund eine Achtelmillion Dateien via MOVE an einen anderen Ort an den anderen zu bewegen. Das ganze findet in einer *.bat-Datei statt, die dementsprechend viele Zeilen im Format

move "F:\Ordner1\Datei1.suffix" "F:\Ordner2\Datei1_neu.suffix" (rund 180 Zeichen)

Natürlich wird nicht auch nur eine Datei verschoben - sonst wäre es ja auch zu einfach.

The system cannot find the path specified ist die Fehlermeldung, allerdings scheinbar auch nicht für jede Zeile.

Ich persönlich vermute einfach, dass MOVE nicht die beste Wahl ist. Welche Möglichkeit gibt es, die Dateien zu verschieben, gleichzeitig umzubenennen - und dabei am besten auf eine txt- oder csv-Datei zurückzugreifen, die in jeder Zeile durch was auch immer getrennt

"F:\Ordner1\Datei1.suffix";"F:\Ordner2\Datei1_neu.suffix"

enthält.

Vielen Dank vorab!

Content-Key: 142448

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

Printed on: April 26, 2024 at 03:04 o'clock

Member: rubberman
rubberman May 08, 2010 at 22:21:36 (UTC)
Goto Top
Hallo Laienkoenig,

willkommen im Forum.

Der MOVE Befehl ist für das Verschieben von Dateien gedacht und deshalb IMO völlig in Ordnung.
Da das Phänomen nur sporadisch auftaucht, vermute ich, dass es mit den im Pfad / Dateinamen enthaltenen Zeichen zusammenhängt. Erfahrungsgemäß sind es Zeichen die von der CMD missinterpretiert oder verschluckt werden. Mein Orakel sagt mir, dass es sich wahrscheinlich um Prozentzeichen (%), Ampersands (&) oder Carets (^) handelt. Falls du mit enabledelayedexpansion arbeitest, kommt auch noch das Ausrufezeichen in Frage.
Prüf mal und gib Rückmeldung.

In dem Zusammenhang dürften diese Zeichen aber keine Rolle mehr spielen, wenn die Pfade wie von dir beschrieben in einer Datei untergebracht werden und in Anführungszeichen stehen.
Für eine *.csv Datei würde der zugehörige Batch-Schnipsel so aussehen:
for /f "usebackq delims=; tokens=1*" %%a in ("schieb a nach b.csv") do move %%a %%b  

Grüße
rubberman
Member: Laienkoenig
Laienkoenig May 09, 2010 at 10:56:21 (UTC)
Goto Top
Alles prima - merci beaucoup! Ich kämpfe mich dann später einmal durch die Syntax, um alles zu verstehenface-smile