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-Key: 34759

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: Biber
Biber Jun 23, 2006 at 19:15:00 (UTC)
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
Member: yashi
yashi Jun 24, 2006 at 10:30:40 (UTC)
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
Member: Biber
Biber Jun 24, 2006 at 18:36:58 (UTC)
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
Member: Jens03
Jens03 Jun 27, 2006 at 22:09:06 (UTC)
Goto Top
Danke!