(Во-первых, я хотел бы рекомендовать этот полезный справочный сайт для пакетной:
http://ss64.com/nt/ )
Тогда просто еще одно полезное объяснение: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
Переменная% ~ dp0
% ~ Dp0 (это ноль) переменной при ссылке в пакетном файле Windows , будет расширяться в г омывается рекой и буквой р АТН этого пакетного файла.
Переменные% 0-% 9 относятся к параметрам командной строки пакетного файла. % 1-% 9 ссылается на аргументы командной строки после имени пакетного файла. % 0 относится к самому пакетному файлу.
Если после символа процента (%) следует символ тильды (~), перед номером параметра можно вставить модификатор (модификаторы), чтобы изменить способ расширения переменной. Модификатор d расширяется до буквы диска, а модификатор p - до пути параметра.
Пример: допустим, у вас есть каталог на C: с именем bat_files, и в этом каталоге находится файл с именем example.bat. В этом случае% ~ dp0 (объединяющий модификаторы d и p) расширится до C: \ bat_files.
Проверьте эту статью Microsoft для полного объяснения.
Кроме того, проверьте эту ветку форума .
И более четкая ссылка здесь :
%CmdCmdLine%
вернет всю командную строку, переданную в CMD.EXE
%*
вернет остаток командной строки, начиная с первого аргумента командной строки (в Windows NT 4% * также включает все начальные пробелы)
%~dn
вернет букву диска% n (n может варьироваться от 0 до 9), если% n является допустимым путем или именем файла (без UNC)
%~pn
вернет каталог% n, если% n является допустимым путем или именем файла (без UNC)
%~nn
вернет имя файла только% n, если% n является допустимым именем файла
%~xn
вернет расширение файла только% n, если% n является допустимым именем файла
%~fn
вернет полный путь% n, если% n является допустимым именем файла или каталога
ДОБАВИТЬ 1
Только что нашел хорошую ссылку для загадочного ~
оператора тильды.
%~
Строка называется процентом тильды оператора. Вы можете найти его в таких ситуациях , как: %~0
.
:~
Строка называется двоеточием тильды оператора. Вы можете найти это как %SOME_VAR:~0,-1%
.
ДОБАВИТЬ 2 - 13:12 7/7/2018
%1-%9
обратитесь к аргументам командной строки. Если они не являются допустимыми значениями пути, %~dp1
- %~dp9
все будут расширены до того же значения, что и %~dp0
. Но если они являются допустимыми значениями пути, они расширятся до своего собственного значения драйвера / пути.
Например: (batch.bat)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
Прогон 1:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
Прогон 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\