batch - String nach bei einem bestimmten Zeichen abschneiden

prototype0815

Cadet 2nd Year
Registriert
Jan. 2014
Beiträge
31
Hey hey, ich habe schon mehrere Tage ein Problem und finde einfach keine Lösung dafür.

Ich will folgendes machen, ich habe eine Variable %Folder% in der ein Pfad steht. Dieser Pfad sieht ungefähr so aus...

C:\daten\eclipse\projekte\irgendEinName
C:\daten\eclipse\projekte\sonstIrgendwas
C:\daten\eclipse\projekte\hurzel
C:\daten\eclipse\projekte\2014-02-05-Daniel

ich will damit deutlich machen das der hinterste Name unterschiedlich lang sein kann, und ich will den Namen des hintersten Ordners aus diesem Pfad in einer eigenen Variable haben. Ergo von hinten den Pfad durchsuchen und beim ersten "\" (backslash) den String abschneiden.

Vielen Dank
 
Also in Powershell funktioniert das mit einer Split funktion.

in deinem Beispiel:

$test = $("C:\daten\eclipse\projekte\irgendEinName").Split("\")[4]

Er splittet in diesem Beispiel immer nach einem "\" und schreibt den Inhalt des Arrays an Stelle 4 in die Variable $test

Google mal nach Split, da sollte es denke ich auch was für batch geben.
 
Es ist doch unglaublich, ich hab jetzt mehrere Tage immer wieder gesucht und kaum schreibe ich einen Thread finde ich die Lösung...

for /f "delims=" %%i in ("%pfad%.") do set "ergebnis=%%~nxi"

oder

for /f "delims=" %%i in ("%~1.") do set "ergebnis=%%~nxi"

Falls es keinen abschließenden Backslash geben sollte, musst man den Punkt hinter %pfad% bzw. %~1 weglassen.
 

Ähnliche Themen

Zurück
Oben