(Primero, me gustaría recomendar este útil sitio de referencia para el lote:
http://ss64.com/nt/ )
Entonces solo otra explicación útil: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
La variable% ~ dp0
El ~% dp0 (que es un cero) variable cuando se hace referencia dentro de un archivo por lotes de Windows se expandirá a la d carta Rive y p ath de ese archivo por lotes.
Las variables% 0-% 9 se refieren a los parámetros de la línea de comandos del archivo por lotes. % 1-% 9 se refieren a los argumentos de la línea de comando después del nombre del archivo por lotes. % 0 se refiere al archivo por lotes en sí.
Si sigue el carácter de porcentaje (%) con un carácter de tilde (~), puede insertar uno o varios modificadores antes del número de parámetro para alterar la forma en que se expande la variable. El modificador d se expande a la letra de unidad y el modificador p se expande a la ruta del parámetro.
Ejemplo: supongamos que tiene un directorio en C: llamado bat_files, y en ese directorio hay un archivo llamado example.bat. En este caso,% ~ dp0 (combinando los modificadores d y p) se expandirá a C: \ bat_files.
Consulte este artículo de Microsoft para obtener una explicación completa.
Además, echa un vistazo a este hilo del foro .
Y una referencia más clara desde aquí :
%CmdCmdLine%
devolverá toda la línea de comando como se pasó a CMD.EXE
%*
devolverá el resto de la línea de comando comenzando en el primer argumento de la línea de comando (en Windows NT 4,% * también incluye todos los espacios iniciales)
%~dn
devolverá la letra de unidad de% n (n puede variar de 0 a 9) si% n es una ruta válida o un nombre de archivo (sin UNC)
%~pn
devolverá el directorio de% n si% n es una ruta válida o un nombre de archivo (sin UNC)
%~nn
devolverá el nombre de archivo solo de% n si% n es un nombre de archivo válido
%~xn
devolverá la extensión de archivo solo de% n si% n es un nombre de archivo válido
%~fn
devolverá la ruta completa de% n si% n es un nombre de archivo o directorio válido
AGREGAR 1
Acabo de encontrar una buena referencia para el misterioso ~
operador de tilde.
La %~
cadena se llama operador tilde por ciento . Lo puede encontrar en situaciones como: %~0
.
La :~
cadena se llama operador de tilde de colon . Puedes encontrarlo como %SOME_VAR:~0,-1%
.
AGREGAR 2 - 1:12 PM 6/6/2018
%1-%9
consulte los argumentos de la línea de comando. Si son no los valores ruta válida, %~dp1
- %~dp9
se expandirán para el mismo valor que %~dp0
. Pero si son valores de ruta válidos, se expandirán a sus propios valor de controlador / ruta.
Por ejemplo: (batch.bat)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
Ejecución 1:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
Ejecución 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\