[cmd.exe] "%1" ersetzen

14/12/2009 - 20:10 von Stefan Reuther | Report spam
Hallo,

in cmd.exe kann man ja in Umgebungsvariablen Text ersetzen
echo %foo:such=ersetz%
Wie geht das, wenn der zu suchende Text '%1' ist (also Prozentzeichen,
Eins), der einzusetzende Text ist %1 (also erster positionaler
Parameter) oder eine Umgebungsvariable? Meine bisherigen Versuche, in
%foo:%1=%1%
mit Gànsefüßchen und/oder Caret zu quoten waren bisher nicht von Erfolg
gekrönt.

Die zu lösende Aufgabe ist eine Batch zum Starten von Dateien aus der
Shell. Meistens funktioniert der Eingabe des Namens 'foo.doc', aber aus
Gründen, die ich noch nicht ganz herausgefunden habe, bringt das
neuerdings gerne "Zugriff verweigert". Daher wollte ich mir mittels
assoc/ftype die Kommandozeile selbst zusammenbauen.

Klar, ein Zwanzigzeiler in C wàre vermutlich auch drin, aber geht es
auch in Batch?


Stefan
 

Lesen sie die antworten

#1 Ferry Bolhar
15/12/2009 - 09:31 | Warnen spam
"Stefan Reuther":

in cmd.exe kann man ja in Umgebungsvariablen Text ersetzen
echo %foo:such=ersetz%
Wie geht das, wenn der zu suchende Text '%1' ist (also Prozentzeichen,
Eins), der einzusetzende Text ist %1 (also erster positionaler
Parameter) oder eine Umgebungsvariable? Meine bisherigen Versuche, in
%foo:%1=%1%
mit Gànsefüßchen und/oder Caret zu quoten waren bisher nicht von Erfolg
gekrönt.



Beispiel:

C:\> set foo=%%1
C:\> set ersetz=XXX
C:\> echo %foo:%%1%ersetz%
XXX
C:\>

Wolltest du das? Oder habe ich etwas falsch verstanden?

LG, Ferry

Ing. Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail:

Ähnliche fragen