
52271
19.08.2007, aktualisiert am 20.08.2007
Parent-Verzeichnis als String auslesen... schwierig?
Hallo an alle! Bin leider eher ein Novize, als daß ich Euch noch/schon helfen könnte... vielleicht könnt Ihr mir dafür die Augen öffnen? Danke für's Drübergucken..!
Ich stehe vor folgendem Problem:
- In einem Verzeichnis der folgenden "Marke"
C:\Dokumente und Einstellungen\Dies und das\Tralala\230-Honkong\
findet sich zum Beispiel die Datei Gibsnich.txt
Ich möchte gern folgendes tun
- die ersten drei Zeichen des Überverzeichnisses auslesen
- also "230"
- dann Gibsnich.* in 230.* (umbenennen)
Habe ordentlich gesucht, aber das Populärste ist es, mit %CD% das Verzeichnis anzeigen zu lassen bzw. in einer Variable zu speichern, die dann via delims und token verändert wird... aber WIE, damit ich dann meine "230" in einer Variable gespeichert kriege? Es wird immer der ganze Pfad, mehrere Unterverzeichnisse bzw. mit Slashs \ angegeben... Es reicht bei mir nicht dazu, die Befehlserklärungen in eigenes Hirn-Bätsch umzusetzen *schmoll*...
Bedanke mich für recht kritische Kommentare oder gar Hilfe ;)
Myro
Ich stehe vor folgendem Problem:
- In einem Verzeichnis der folgenden "Marke"
C:\Dokumente und Einstellungen\Dies und das\Tralala\230-Honkong\
findet sich zum Beispiel die Datei Gibsnich.txt
Ich möchte gern folgendes tun
- die ersten drei Zeichen des Überverzeichnisses auslesen
- also "230"
- dann Gibsnich.* in 230.* (umbenennen)
Habe ordentlich gesucht, aber das Populärste ist es, mit %CD% das Verzeichnis anzeigen zu lassen bzw. in einer Variable zu speichern, die dann via delims und token verändert wird... aber WIE, damit ich dann meine "230" in einer Variable gespeichert kriege? Es wird immer der ganze Pfad, mehrere Unterverzeichnisse bzw. mit Slashs \ angegeben... Es reicht bei mir nicht dazu, die Befehlserklärungen in eigenes Hirn-Bätsch umzusetzen *schmoll*...
Bedanke mich für recht kritische Kommentare oder gar Hilfe ;)
Myro
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 66564
Url: https://administrator.de/forum/parent-verzeichnis-als-string-auslesen-schwierig-66564.html
Ausgedruckt am: 16.05.2025 um 18:05 Uhr
5 Kommentare
Neuester Kommentar
Ist eigentlich ganz einfach.
Mit der Forschleife kans tdu den string mit den vielen \ zeilegen udn alle durchmachen, dabei nur den letzten speichern. Danach mußt du in dieser Variabeln di ersten drei zeichen rausholen und danach Die datei umbenennen. Das ganze dann so:
miniversum
Mit der Forschleife kans tdu den string mit den vielen \ zeilegen udn alle durchmachen, dabei nur den letzten speichern. Danach mußt du in dieser Variabeln di ersten drei zeichen rausholen und danach Die datei umbenennen. Das ganze dann so:
FOR /F "delims=\" %%i in ('echo %cd%') do set lastpath=%%i
set erste=%lastpath:0,3%
ren Gibsnich.txt %erste%.txt
set erste=%lastpath:0,3%
ren Gibsnich.txt %erste%.txt
miniversum
Moin myro81,
willkommen im Forum.
Ich würde, auch wenn die von Dir gepostete Variante des Themas funktioniert, aus Gründen der Wartbarkeit doch eher etwas 3zeiliges a la miniversums Lösung empfehlen.
Also eine FOR /F-Anweisung bezogen auf %CD% wie oben,
oder vielleicht eine simple FOR-Anweisung wie hier:
Grüße
Biber
willkommen im Forum.
Ich würde, auch wenn die von Dir gepostete Variante des Themas funktioniert, aus Gründen der Wartbarkeit doch eher etwas 3zeiliges a la miniversums Lösung empfehlen.
Also eine FOR /F-Anweisung bezogen auf %CD% wie oben,
oder vielleicht eine simple FOR-Anweisung wie hier:
for %%i in ("%cd%\..") do @Set "lastpath=%%~nxi"
set first3=%lastpath:~0,3%
ren Gibsnich.txt %first3%.txt
Grüße
Biber
Hallo myro81!
Falls Du den Schritt 2 noch etwas abkürzen wolltest, könnte ich ([Edit]weil ich Biber's Version noch nicht gesehen hatte[/Edit]) folgenden Ansatz anbieten :
Funktionsweise: Bei Verwendung der Schreibweise ~nx für eine "for"-Variable (siehe am Ende der Hilfe zu "for") wird eigentlich Name und Extension einer Datei aus dem Variableninhalt extrahiert. Da allerdings der CMD-Interpreter alles, was nach dem letzten \ eines Pfades folgt, als Datei ansieht, bekommst Du, da ja %CD% keine Datei enthält, dadurch das gesuchte letzte Verzeichnis des Pfades ...
Grüße
bastla
[Edit] Bei der Bahn würden die sich vermutlich über eine Verspätung von knapp über 20 Minuten freuen ...
[/Edit]
Falls Du den Schritt 2 noch etwas abkürzen wolltest, könnte ich ([Edit]weil ich Biber's Version noch nicht gesehen hatte[/Edit]) folgenden Ansatz anbieten :
for /f "delims=" %%i in ('echo %cd%') do set "RD=%%~nxi"
Grüße
bastla
[Edit] Bei der Bahn würden die sich vermutlich über eine Verspätung von knapp über 20 Minuten freuen ...