Teilzeichenfolge aus dem Windows-Skript „Absoluter Pfad entfernen“ entfernen

Teilzeichenfolge aus dem Windows-Skript „Absoluter Pfad entfernen“ entfernen

Ich bin neu bei Windows-Skripten und habe den absoluten Pfad wie – /bin/debug/test/abc.xyz.dllund ich möchte den Dateinamen entfernen und nur einen Pfad wie den folgenden als Ausgabe erhalten: /bin/debug/test/.

Wie soll ich das machen?

Antwort1

FORHierzu können Sie die erweiterten Funktionen einer Schleife nutzen - auch wenn diese nicht "geloopt" wird:

@echo off
setlocal EnableExtensions
set "arg=%~1"
for /f %%A in ('echo %arg%') do echo %%~pA

wo Sie dieses Skript mit dem vollständigen Dateinamen aufrufen, möglicherweise in Anführungszeichen, um die darin enthaltenen Leerzeichen zu schützen.

bearbeiten: Mein ursprünglicher Code echo %%~nxAwar offensichtlich falsch, tut mir leid. Er isoliert den Dateinamen vom Pfad und gibt den Dateinamen zurück. Der obige Code gibt jetzt nur den Pfad zurück (ohne den Laufwerksbuchstaben).

Bearbeitung2: Ich bin @Karan dankbar für den Hinweis, dass dies wie folgt abgekürzt werden kann:

@echo off
setlocal EnableExtensions
echo %~p1

weil die erweiterte Variablenerweiterungssyntax nicht nur in FORSchleifen verfügbar ist, sondern auch mitArgumenterweiterungauch (siehe CALL /?).

verwandte Informationen