(Zunächst möchte ich diese nützliche Referenzseite für Batch empfehlen:
http://ss64.com/nt/ )
Dann noch eine nützliche Erklärung: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
Die% ~ dp0-Variable
Das% ~ dp0 (das ist eine Null) Variable , wenn innerhalb einer Windows - Batch - Datei verwiesen wird auf den erweitert d rive Brief und p ath diese Batch - Datei.
Die Variablen% 0-% 9 beziehen sich auf die Befehlszeilenparameter der Batchdatei. % 1-% 9 beziehen sich auf Befehlszeilenargumente nach dem Namen der Batchdatei. % 0 bezieht sich auf die Batchdatei selbst.
Wenn Sie dem Prozentzeichen (%) ein Tildezeichen (~) folgen, können Sie vor der Parameternummer einen oder mehrere Modifikatoren einfügen, um die Art und Weise zu ändern, in der die Variable erweitert wird. Der Modifikator d wird zum Laufwerksbuchstaben und der Modifikator p zum Pfad des Parameters erweitert.
Beispiel: Angenommen, Sie haben ein Verzeichnis in C: mit dem Namen bat_files und in diesem Verzeichnis befindet sich eine Datei mit dem Namen example.bat. In diesem Fall wird% ~ dp0 (Kombination der Modifikatoren d und p) zu C: \ bat_files erweitert.
In diesem Microsoft-Artikel finden Sie eine vollständige Erklärung.
Schauen Sie sich auch diesen Forenthread an .
Und eine klarere Referenz von hier :
%CmdCmdLine%
gibt die gesamte Befehlszeile zurück, die an CMD.EXE übergeben wurde
%*
gibt den Rest der Befehlszeile ab dem ersten Befehlszeilenargument zurück (in Windows NT 4 enthält% * auch alle führenden Leerzeichen).
%~dn
gibt den Laufwerksbuchstaben von% n zurück (n kann zwischen 0 und 9 liegen), wenn% n ein gültiger Pfad oder Dateiname ist (kein UNC)
%~pn
gibt das Verzeichnis von% n zurück, wenn% n ein gültiger Pfad oder Dateiname ist (kein UNC)
%~nn
gibt den Dateinamen nur von% n zurück, wenn% n ein gültiger Dateiname ist
%~xn
gibt die Dateierweiterung von% n nur zurück, wenn% n ein gültiger Dateiname ist
%~fn
gibt den vollständig qualifizierten Pfad von% n zurück, wenn% n ein gültiger Dateiname oder ein gültiges Verzeichnis ist
ADD 1
Ich habe gerade eine gute Referenz für den mysteriösen ~
Tilde-Operator gefunden.
Die %~
Zeichenfolge wird als Prozent-Tilde- Operator bezeichnet. Sie finden es in Situationen wie : %~0
.
Die :~
Zeichenfolge wird als Doppelpunkt-Tilde- Operator bezeichnet. Sie können es wie finden %SOME_VAR:~0,-1%
.
ADD 2 - 1:12 PM 7/6/2018
%1-%9
Weitere Informationen finden Sie in den Befehlszeilenargumenten. Wenn es sich nicht um gültige Pfadwerte handelt, werden %~dp1
- %~dp9
alle auf denselben Wert wie erweitert %~dp0
. Wenn es sich jedoch um gültige Pfadwerte handelt, werden sie auf ihren eigenen Treiber- / Pfadwert erweitert.
Zum Beispiel: (batch.bat)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
Lauf 1:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
Lauf 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\