naja-2013
Goto Top

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?

Content-Key: 202384

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

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: bastla
bastla 26.02.2013 um 13:07:01 Uhr
Goto Top
Hallo Naja2013 und willkommen im Forum!

Naja, mit DOS-Befehlen hättest Du da schlechte Karten, aber da schon seit langem CMD verwendet wird ... face-wink

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%
Grüße
bastla

P.S.: Das Schreiben in eine Temporär-Datei wäre schon eher "DOS-like" ...
Mitglied: Naja-2013
Naja-2013 26.02.2013 um 13:24:18 Uhr
Goto Top
Hallo Bastla, erstmal vielen Danke für deine Hilfe.

Das Leben kann so einfach sein. Kannst du mir sagen worüber du es steuerst das bestimmte Zeichen unterdrückt und behalten werden?
Mitglied: bastla
bastla 26.02.2013 aktualisiert um 14:00:19 Uhr
Goto Top
Hallo Naja-2013!

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