jens03
Goto Top

Aktuelles Verzeichnis ermitteln

Wie kann ich in einer Batch-Datei den Namen des aktuellen (letzten) Unterverzeichnisses ermitteln?

Bsp: Wenn %CD% = "D:\Folder\...\Subfolder" ist, möchte ich "Subfolder" auslesen können.

Content-ID: 34759

Url: https://administrator.de/forum/aktuelles-verzeichnis-ermitteln-34759.html

Ausgedruckt am: 23.12.2024 um 07:12 Uhr

Biber
Biber 23.06.2006 um 21:15:00 Uhr
Goto Top
Moin Jens03,

ein möglicher Weg ist
::------snipp LastDirDemo.bat
@for  %%i in (%cd:\=,%) do @set lastDir=%%i 
@echo Letztes Unterverzeichnis in %CD% ist %LastDir%
::------snapp LastDirDemo.bat

Dann steht es in der Variable %LastDir%.

Wofür braucht man/frau denn sowas??

Gruß
Biber
yashi
yashi 24.06.2006 um 12:30:40 Uhr
Goto Top
Hey Biber,

bleibt nur zu hoffen, dass der Ordner kein Komma im Name hat oder ?
Naja könnte man sich ja mit "delims=\" behelfen.


regards
Biber
Biber 24.06.2006 um 20:36:58 Uhr
Goto Top
Stimmt schon, yashi,

ein bisschen wacklig ist diese Lösung schon...
Besser/robuster ist dann das Ersetzen der Backslashes durch [","] ,
also durch die Sequenz Hochkomma-Komma-Hochkomma.
Ein Test am CMD-Prompt würde dann z.B. liefern:
D:\Dokumente und Einstellungen>
$cmd$for %i in ("%cd:\=","%") do @echo %i  
"D:"  
"Dokumente und Einstellungen"  
Da Kollege Jens03 den letzten Pfadteil aber vermutlich ohne umschließende Anführungszeichen haben will, müssten die wieder weggefiltert werden_
D:\Dokumente und Einstellungen>
$cmd$for %i in ("%cd:\=","%") do @echo %~i  
D:
Dokumente und Einstellungen

Und der geänderte Batchschnipsel wäre entsprechend
::------snipp LastDirDemo.bat
@for  %%i in (%cd:\=","%) do @set "lastDir=%%~i"  
@echo Letztes Unterverzeichnis in %CD% ist %LastDir%
::------snapp LastDirDemo.bat

Dann können von mir aus auch Kommata im Pfadnamen sein.

Grüße
Biber
Jens03
Jens03 28.06.2006 um 00:09:06 Uhr
Goto Top
Danke!