99046
Goto Top

Kompletten Pfad des übergeordneten Ordners ermitteln

Hallo zusammen,
mit
@echo off
set SD=%~dp0
echo %SD%
for /d %%A in (%SD%..) do set PDir=%%~nxA
echo %PDir%
habe ich [ z.B. in diesem Fall ] den folgenden Output:
C:\Programme\7-Zip\Lang\
7-Zip
... also den NAMEN des übergeordneten Ordners -
wie erhalte ich den kompletten Pfad, also "C:\Programme\7-Zip\" ?

Hat jemand einen Tip ? Danke.

Gruß, Rob

Content-Key: 175037

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

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

Member: bastla
bastla Oct 20, 2011 at 20:03:36 (UTC)
Goto Top
Hallo rob400!

Etwa so:
@echo off & setlocal
set "SD=%~dp0"  
echo %SD%
for /d %%A in ("%SD%..") do set "PDir=%%~fA"  
echo %PDir%
Solltest Du Wert darauf legen, dass sich am Ende von %PDir% ein "\" befindet, kannst Du noch die Zeile
if "%PDir:~-1%" neq "\" set "PDir=%PDir%\"
hinzufügen ...

Falls übrigens %SD% nicht für andere Zwecke benötigt wird, könntest Du auch gleich
for /d %%A in (%0\..\..) do set "PDir=%%~fA"
verwenden.

Grüße
bastla

[Edit] Zur Sicherheit noch einige Anführungszeichen nachgelegt [/Edit]
Mitglied: 99046
99046 Oct 20, 2011 at 20:28:54 (UTC)
Goto Top
Hallo bastla,

klasse, genau so !
Was Du + andere hier mal locker aus 'dem Ärmel' holen ist spitze. face-smile

Danke !

Gruß, Rob
Member: Skyemugen
Skyemugen Oct 21, 2011 at 06:46:03 (UTC)
Goto Top
Aloha bastla & Rob,

ach, ich geb ihm noch die wenn-man-die-doppeltgeklickte-batch-aus-ihrem-Verzeichnis-eh-ausführt-Variante face-wink

for /d %%a in (..) do echo %%~fa

@TE je nachdem von wo man die betreffende Batch mit der Zeile ausführt, erhält man das übergeordnete Verzeichnis der aktiven Batch (oder auch vom aktiven cmd-prompt) und wenn du das Ganze mit einem Punkt machst, erhälst du logischerweise das aktuelle Verzeichnis der Ausführung (bei bastla wäre dies, wenn du einmal \.. wegnimmst).

Das Thema hier ist zwar gelöst aber eventuell brauchst du diese Spielereien ja mal face-wink

greetz André
Mitglied: 99046
99046 Oct 21, 2011 at 09:28:38 (UTC)
Goto Top
Hallo André,

auch gut!
brauch ich sicher mal.

Danke.

Greetz Rob