Die schreibgeschützte Systemvariable %CD%
behält den Pfad des Aufrufers des Stapels bei, nicht den Speicherort der Stapeldatei.
Sie können den Namen des Stapel-Skripts selbst erhalten, wie es vom Benutzer mit %0
eingegeben wurde (z. B. scripts\mybatch.bat
). Parameter extensions kann auf diese Anwendung angewendet werden, so dass %~dp0
das Laufwerk und den Pfad zum Stapelscript (z. B. W:\scripts\
) zurückgibt und %~f0
den vollständigen Pfadnamen zurückgibt (z. B. W:\scripts\mybatch.cmd
).
Sie auf andere Dateien im selben Ordner wie die Batch-Skript, indem Sie diese Syntax verweisen:
CALL %0\..\SecondBatch.cmd
Dies kann auch verwendet werden, in einem Unterprogramm, wird Echo %0
den Anruf Etikett geben, aber wird echo "%~nx0"
geben Sie den Dateinamen des Batch-Skripts.
Wenn die Variable %0
erweitert wird, wird das Ergebnis in Anführungszeichen eingeschlossen.
More on batch parameters.
Sie sollten alle Antworten auf eine Frage lesen, vor allem die höheren Stimmen Getters, nicht nur die akzeptierte. Die Antwort mit der höchsten Punktzahl an Ihrem geposteten Link beantwortet Ihre Frage bereits. – dbenham
Wenn Sie in c: \ sind, wenn Sie den Namen der Stapeldatei eingeben, dann wird c: \ das% cd% wird gedruckt. – foxidrive