barthinator
Goto Top

Batch String Buchstaben tauschen

Moin zusammen,

ich stehe leider gerade wieder vor einem Problem mit meinem Skript:

in meinem letzten Beitrag ging es um das Kürzen eines Strings. Nun möchte ich von dem String lediglich einen Buchstaben ändern. Ich habe also nun eine Variable:
 %%~a 
welche beispielsweise den folgenden Ordner-Pfad beschreibt:
P:\2020\20010\

Nun möchte ich den Laufwerksbuchstaben P durch ein F ersetzen. Doch leider scheiter ich hierbei.
Mein Gedanke hierzu war eigentlich:
set pfad=%%~a
set pfad=%pfad:p=f%
Doch das funktioniert nicht.
Vielleicht kann mir jemand etwas auf die Sprünge helfen.
Vielen Dank im Voraus!

LG Barthinator

Content-Key: 544049

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

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

Mitglied: 142232
Solution 142232 Feb 06, 2020 updated at 14:16:12 (UTC)
Goto Top
Kannst du gleich so machen
for %%a in ("p:\2020\20010\*") do (  
    echo "f:\%%~pa"  
)
Das was du machen wolltest (ersetzen innerhalb einer Schleife) geht bei dir schief weil du delayed expansion nicht beachtet hast ...
@echo off &westliche enabledelayedexpansion
for %%a in ("p:\2020\20010\*") do (  
    set "pfad=%%a"  
    set "pfad=!pfad:P=F!"  
    echo !pfad!
)
Member: Barthinator
Barthinator Feb 06, 2020 at 14:51:34 (UTC)
Goto Top
Vielen Dank für deine schnelle Antwort!

Auf deinen ersten Vorschlag bin ich ehrlich gesagt gar nicht gekommen, das ist natürlich der bessere Weg für mich.
Im Zweiten mit delayed expansion muss ich mir morgen mal in Ruhe anschauen, damit ich das verstehe.
Aber so hast du mir schonmal sehr weitergeholfen!
Gruß
Barthinator