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-ID: 544049

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

Ausgedruckt am: 22.11.2024 um 06:11 Uhr

142232
Lösung 142232 06.02.2020 aktualisiert um 15:16:12 Uhr
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!
)
Barthinator
Barthinator 06.02.2020 um 15:51:34 Uhr
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