Batch: Datei kopieren mit Leerzeichen im Pfad?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Versuch das mal:

for /f "tokens=1* delims=" %i in ("c:\neu\liste.txt") do @robocopy "%~i" "c:\neu"

Damit werden die Zeilen komplett ausgelesen, diese Dateinamen werden dann als %i übergeben und "%~i" entfernt ggf. vorhandene umschließende Anführungszeichen, um dann eindeutige Neue hinzuzufügen.

Es ist an der Befehlszeile immer ratsam, bei Datei-/Ordner-/Pfadnamen umschließende Anführungszeichen zu verwenden. So gibt es keine Missverständnisse.


lisa272 
Beitragsersteller
 04.10.2016, 13:47

besten Dank, das funktioniert so :)

Weißt du auch wie ich den Dateiname (der kopierten Datei) erweitern kann um bspw eine fortlaufende Nummer?

MarkusGenervt  04.10.2016, 14:03
@lisa272

Das ist mit Batch etwas umständlich:

entweder

for /L %C in (1,1,100) do (
set counter=0000%~C
set counter=%counter:~-4%
set myFile=File%counter%.txt
)

oder

set /a counter=0
for /R "." %F in (*) do (
set /a counter+=1
set myFile=0000%counter%
set myFile=File%myFile:~-4%.txt
)

In beiden Fällen wird eine fortlaufende 4-stellige Zahl mit führenden Nullen, beginnend mit "1" erzeugt und diese als Teil des Dateinamen benutzt: "File0001.txt", "File0002.txt", usw.

Außerdem kann dann jeweils der Dateiname als Variable genutzt werden, der dann universell eingesetzt werden kann.

Im ersten Beispiel Zählt die FOR-Schleife die fortlaufende Nummer (bis 100). Im zweiten Beispiel werden durch die FOR-Schleife alle Dateien rekursiv aufgelistet und für jede Datei wird eine Zahl weiter gezählt. Hier könntest Du auch z.B. "File" mit "%~F" ersetzen.

Beim Verwenden der Variable %myFile% musst Du diese dann in Anführungszeichen setzen.

setz den kompletten Pfad in " "    also "C:\....."

dann gehts.


lisa272 
Beitragsersteller
 03.10.2016, 12:17

habe ich bereits versucht, er kommt dennoch nicht weiter als Program..

Maisbaer78  03.10.2016, 12:19
@lisa272

oh hab ich übersehen, sry.

setz das 2. " mal vor dem dateinamen.

Maisbaer78  03.10.2016, 12:19
@Maisbaer78

also so:

"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\plug_ins\Annotations\Stamps\DEU\"SignHere.pdf

Maisbaer78  03.10.2016, 12:33
@Maisbaer78

also hab mir die RC-Syntax nochmal angeschaut. Wenn du explizit eine Datei angeben willst, dann erst die Quelle ...dann das Ziel und anschliessend die Datei angeben.  das sollte klappen

lustiger Weise habe ich festgestellt, dass beim Auswählen des Zielverzeichnisses die Methode " " nicht funktioniert. Beim Quellverzeichnis aber schon.

also in deinem Falle wäre die Syntax so:

Robocoy "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\plug_ins\Annotations\Stamps\DEU\" "C:\Neu\" SignHere.pdf

Maisbaer78  03.10.2016, 12:42
@Maisbaer78

ah ich hab den Fehler gefunden.....

robocopy "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\plug_ins\Annotations\Stamps\DEU" "C:\neu" SignHere.pdf

lass die abschliessenden Backslashs nach der Quell und Zielverzeichnissangabe weg, dann gehts..