c20082005
Goto Top

Batch: Aktuellen Verzeichnisnamen einer Pfadangabe auslesen

Hallo,

ich bekomme folgendes (ich vermute simples) Problem nicht gelöst:

Ich habe eine Pfadangabe in einer Variablen, z.B.: "c:\a\b\c\d", wobei die Verzeichnistiefe variabel ist (es könnte auch "c:\a\b" heißen).
Wie bekomme ich den letzten Verzeichnisnamen ausgelesen - also in dem Beispiel das "d"?

Ich könnte ja
for /f "tokens=5 delims=\" %%j in ("%conv_pfad%") do set verz1=%%j
wählen, jedoch würde bei längerem/kürzerem Pfad ein falsches Ergebnis herauskommen.

Könnt ihr mir helfen?

Gruß

Klaus

Content-ID: 288910

Url: https://administrator.de/forum/batch-aktuellen-verzeichnisnamen-einer-pfadangabe-auslesen-288910.html

Ausgedruckt am: 23.12.2024 um 07:12 Uhr

eldorado1
eldorado1 20.11.2015 um 11:09:16 Uhr
Goto Top
Hallo

habe es jetzt nicht ausprobiert aber müsste so funktionieren

For /F "tokens=1-5 delims=\" %%A IN ("%conv_pfad%") DO (  
    set verz1=%%A
)

Gruß Eldorado
c20082005
c20082005 20.11.2015 um 14:34:27 Uhr
Goto Top
Hallo,

danke für die Antwort.
Leider ist das nicht erfolgreich.
Die "For-Schleife" weist dem ersten Teil die Variable %%A , dem zweiten %%B usw zu. Somit wird der Variablen immer der erste Teil zugewiesen.


Ich habe es anders (ungelenk) gelöst:

for /f "tokens= 3,4,5,6 delims=\" %%j in ("%conv_pfad%") do set verz1=%%j&set verz2=%%k&set verz3=%%l&set verz4=%%m  
if "%verz4%" neq "" set conv_verz="%verz4%"&goto conv_start  
if "%verz3%" neq "" set conv_verz="%verz3%"&goto conv_start  
if "%verz2%" neq "" set conv_verz="%verz2%"&goto conv_start  
if "%verz1%" neq "" set conv_verz="%verz1%"&goto conv_start  


Das funktiert zwar, jedoch ist das schon sehr fehleranfällig.

Gibt es denn keine elegante Lösung?

Gruß

Klaus
114757
Lösung 114757 20.11.2015, aktualisiert am 21.11.2015 um 07:30:51 Uhr
Goto Top
Moin.
Gibt es denn keine elegante Lösung?
und ob es die gibt face-wink
for /f "delims=" %%a in ("c:\a\b\c\d") do @echo %%~nxa
Ein for /? zeigt dir die Hilfe zum Ausdruck %%~nxa ...
n = Name
x = Extension
Das mitnehmen der xtension sorgt bei Ordnernamen die einen Punkt enthalten z.B. (ordner.abcxyz), dafür das auch dieser komplett übernommen und nicht am Punkt abgehackt wird.

Gruß jodel32
c20082005
c20082005 21.11.2015 um 07:31:40 Uhr
Goto Top
Perfekt!
Das, was ich gesucht habe!

Vielen Dank!