'mehrwörtige' Variablen in Windows Batch

Hallo,

Zunächst: Entschuldigung für „mehrwörtige“ klingt doof, kürzer gehts aber nicht.

Dann zum eigentlichen „Problem“:

Ich habe ein Windows Batch Skript in dem u.a. folgendes drin vorkommt:

for /f "tokens=2 delims=#" %%a in ('dir /b ch#\*') do ren ch#%%a %%a

Kurze Erklärung, was hiermit erreicht werden soll bzw wird:

Wenn ein Dateiname die Vorsilbe ch# aufweist, dann wird diese entfernt und der dahinter stehende Rest wird zum Dateinamen.
Nun ist mein Problem, dass dieses nur funktioniert, wenn hinter dem ch# nur EIN Wort steht bzw. KEIN LEERZEICHEN vorkommt:

ch#test -> test
ch#testtest -> testtest
aber:
ch#test test -> ch#test test
ch# testtest -> ch# testtest

Hoffentlich verständlich?

Nun reicht es aber nicht aus, die Variablen in Anführungszeichen zu setzen („ch#%%a“ „%%a“).
Was muss ich nun tun, dass ich beliebig viele Leerzeichen im Dateinamen verwenden kann und die Vorsilbe trotzdem entfernt wird.

Vielen Dank,
Martin

Hallo Martin.

Ich habe ein Windows Batch Skript in dem u.a. folgendes drin
vorkommt:

for /f „tokens=2 delims=#“ %%a in (‚dir /b ch#*‘) do ren
ch#%%a %%a

Nun reicht es aber nicht aus, die Variablen in
Anführungszeichen zu setzen („ch#%%a“ „%%a“).
Was muss ich nun tun, dass ich beliebig viele Leerzeichen im
Dateinamen verwenden kann und die Vorsilbe trotzdem entfernt
wird.

Ich habe das jetzt auch mal ausprobiert. Unter Windows XP funktioniert das bei mir. Hast du ein anderes Betriebssystem?
Vorher:

D:\home\temp\test\>dir
 Verzeichnis von D:\home\temp\test

20.10.2009 13:56 .
20.10.2009 13:56 ..
20.10.2009 13:54 8 ch#as df.txt
20.10.2009 13:54 8 ch#qw er.txt
20.10.2009 13:56 73 test.bat
 3 Datei(en) 89 Bytes
 2 Verzeichnis(se), 30.126.551.040 Bytes frei

Batchdatei:

for /f "tokens=2 delims=#" %%a in ('dir /b ch#\*') do ren "ch#%%a" "%%a"

Nachher:

D:\home\temp\test\>dir
 Verzeichnis von D:\home\temp\test

20.10.2009 13:56 .
20.10.2009 13:56 ..
20.10.2009 13:54 8 as df.txt
20.10.2009 13:54 8 qw er.txt
20.10.2009 13:56 73 test.bat
 3 Datei(en) 89 Bytes
 2 Verzeichnis(se), 30.126.551.040 Bytes frei

Sebastian.

Hallo,

Ich hab Windows Vista. Ich kann mir aber nicht vorstellen, dass zwischen XP und Vista ein Unterschied in der Windows Batch besteht…oder?

Gruß,
Martin

Hallo.

Ich hab Windows Vista. Ich kann mir aber nicht vorstellen,
dass zwischen XP und Vista ein Unterschied in der Windows
Batch besteht…oder?

Kann ich mir eigentlich nicht vorstellen, aber wer weiß das schon so genau. Ich habe leider kein Vista zur Verfügung, um das auszuprobieren.
Probier mal zum Test, das ren durch echo zu ersetzen und schau mal, ob die Dateien mit Leerzeichen dann mit ausgegeben werden. Vielleicht hilft das bei der Fehlersuche weiter.

Sebastian.

Hallo,

Sehr seltsam: Nachdem ich die Windows PowerShell deinstalliert habe funktioniert es plötzlich mit den Anführungszeichen…

Vielen Dank,
Martin