(Po pierwsze, chciałbym polecić tę przydatną stronę referencyjną dla partii:
http://ss64.com/nt/ )
Potem jeszcze jedno przydatne wyjaśnienie: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
Zmienna% ~ dp0
Wartość% ~ dp0 (czyli zero), gdy zmienna odwoływać w pliku wsadowym systemu Windows wzrośnie do d rive litery i p ath tego pliku wsadowego.
Zmienne% 0–% 9 odnoszą się do parametrów wiersza poleceń pliku wsadowego. % 1-% 9 odnoszą się do argumentów wiersza poleceń po nazwie pliku wsadowego. % 0 odnosi się do samego pliku wsadowego.
Jeśli podążysz za znakiem procentu (%) ze znakiem tyldy (~), możesz wstawić modyfikator (y) przed numerem parametru, aby zmienić sposób rozwijania zmiennej. Modyfikator d rozwija się do litery napędu, a modyfikator p rozwija się do ścieżki parametru.
Przykład: załóżmy, że masz katalog w C: o nazwie bat_files, aw tym katalogu znajduje się plik o nazwie example.bat. W tym przypadku% ~ dp0 (łącząc modyfikatory dip) rozwinie się do C: \ bat_files.
Pełne wyjaśnienie znajduje się w tym artykule Microsoft .
Sprawdź także ten wątek na forum .
I bardziej jasne odniesienie stąd :
%CmdCmdLine%
zwróci cały wiersz poleceń przekazany do CMD.EXE
%*
zwróci pozostałą część wiersza poleceń, zaczynając od pierwszego argumentu wiersza poleceń (w Windows NT 4% * obejmuje również wszystkie spacje wiodące)
%~dn
zwróci literę dysku% n (n może wynosić od 0 do 9), jeśli% n jest prawidłową ścieżką lub nazwą pliku (bez UNC)
%~pn
zwróci katalog% n, jeśli% n jest prawidłową ścieżką lub nazwą pliku (brak UNC)
%~nn
zwróci tylko nazwę pliku% n, jeśli% n jest prawidłową nazwą pliku
%~xn
zwróci rozszerzenie pliku tylko% n, jeśli% n jest prawidłową nazwą pliku
%~fn
zwróci pełną ścieżkę% n, jeśli% n jest prawidłową nazwą pliku lub katalogu
DODAJ 1
Właśnie znalazłem dobre referencje dla tajemniczego ~
operatora tyldy.
%~
Ciąg nazywa procent tyldy operatora. Można go znaleźć w takich sytuacjach: %~0
.
:~
Ciąg nazywa dwukropek tyldy operatora. Możesz to znaleźć jak %SOME_VAR:~0,-1%
.
DODAJ 2 - 13:12 7/6/2018
%1-%9
odnoszą się do argumentów wiersza poleceń. Jeśli nie są one prawidłowymi wartościami ścieżki, %~dp1
- %~dp9
wszystkie rozwiną się do tej samej wartości co %~dp0
. Ale jeśli są poprawnymi wartościami ścieżki, zostaną rozwinięte do własnych wartości sterownika / ścieżki.
Na przykład: (batch.bat)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
Uruchom 1:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
Uruchom 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\