DOS Verzeichnisnamen zerlegen
Hallo, kaum zu glauben, aber es gibt noch Momente in denen man auf DOS Wissen zurückgreifen muss. Heute ist ein solcher Moment. Vielleicht kann mir jemand helfen.
Ich lese die Homeshare Variable aus und schreibe sie in eine Textdatei. In der Textdatei steht dann:
HOMESHARE=\\server\freigabe$\HOMES\VZ\Benutzer
Diese Zeit möchte ich gerne in Einzelteile zerlegen und daraus einen neuen Namen bilden:
HOMESHARE= (kann gelöscht werden)
\\server (ändert sich in einen festen Wert \\Server2
\freigabe$ (ändert sich in einen festen Wert \freigabe2$
\HOMES (ändert sich in einen festen Wert Homes2
\VZ (bleibt erhalten)
\Benutzer (bleibt erhalten)
Am Ende brauche ich eine neue Variable
\\server2\freigabe2$\HOMES2\VZ\Benutzer
Halt jemand eine Idee wie ich mit DOS Befehlen das erreichen kann?
Ich lese die Homeshare Variable aus und schreibe sie in eine Textdatei. In der Textdatei steht dann:
HOMESHARE=\\server\freigabe$\HOMES\VZ\Benutzer
Diese Zeit möchte ich gerne in Einzelteile zerlegen und daraus einen neuen Namen bilden:
HOMESHARE= (kann gelöscht werden)
\\server (ändert sich in einen festen Wert \\Server2
\freigabe$ (ändert sich in einen festen Wert \freigabe2$
\HOMES (ändert sich in einen festen Wert Homes2
\VZ (bleibt erhalten)
\Benutzer (bleibt erhalten)
Am Ende brauche ich eine neue Variable
\\server2\freigabe2$\HOMES2\VZ\Benutzer
Halt jemand eine Idee wie ich mit DOS Befehlen das erreichen kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 202384
Url: https://administrator.de/forum/dos-verzeichnisnamen-zerlegen-202384.html
Ausgedruckt am: 21.04.2025 um 17:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo Naja2013 und willkommen im Forum!
Naja, mit DOS-Befehlen hättest Du da schlechte Karten, aber da schon seit langem CMD verwendet wird ...
Meinst Du das etwa so?
Grüße
bastla
P.S.: Das Schreiben in eine Temporär-Datei wäre schon eher "DOS-like" ...
Naja, mit DOS-Befehlen hättest Du da schlechte Karten, aber da schon seit langem CMD verwendet wird ...
Meinst Du das etwa so?
@echo off & setlocal
for %%a in ("%Homeshare%") do for %%b in ("%%~pa.") do set "HomeshareNew=\\Server2\freigabe2$\Homes2\%%~nxb\%%~nxa"
echo %HomeshareNew%
bastla
P.S.: Das Schreiben in eine Temporär-Datei wäre schon eher "DOS-like" ...
Hallo Naja-2013!
Eigentlich werden keine Zeichen unterdrückt, sondern Bestandteile des Pfades extrahiert - mit "
Für die zweite Zerlegung wird mit "
Mehr zum Thema liefert die Onlinehilfe mit "
Grüße
bastla
Eigentlich werden keine Zeichen unterdrückt, sondern Bestandteile des Pfades extrahiert - mit "
%%~nxa
" wird zB aus dem gesamten Pfad in "%%a" nur der Name und die Extension (= alles nach dem letzten Punkt - wenn zB Benutzer mit dem Anmeldenamen "Vorname.Zuname" angelegt wurden) verwendet.Für die zweite Zerlegung wird mit "
%%~pa.
" der Pfad (das wäre "server\freigabe$\HOMES\VZ\" - die führenden "\\" werden nicht benötigt, da ja nur der letzte Teil interessiert; ansonsten wäre "%%~dpa.
" zu verwenden) zum "Elternordner" erzeugt und mit "." ergänzt, da der letzte Teil ansonsten nicht als Ordner erkannt würde, um dann wie vorher beschrieben den Namen entnehmen zu können.Mehr zum Thema liefert die Onlinehilfe mit "
for /?
" (ziemlich gegen Ende der Ausgabe) bzw Tutorial.Grüße
bastla