in

archivo por lotes: ¿Qué significa% ~ dp0 y cómo funciona?

apple touch icon@2

(Primero, me gustaría recomendar este sitio de referencia útil para lotes:
http://ss64.com/nt/)

Entonces solo otra explicación útil: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/

los %~dp0 (eso es un cero) cuando se hace referencia a la variable dentro de un archivo por lotes de Windows se expandirá a la Drive carta y pagath de ese archivo por lotes.

Las variables %0-%9 consulte los parámetros de la línea de comandos del archivo por lotes. %1-%9 consulte los argumentos de la línea de comandos 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 un modificador (es) antes del número de parámetro para modificar la forma en que se expande la variable. los d El modificador se expande a la letra de la unidad y el p El modificador se expande a la ruta del parámetro.

Ejemplo: digamos que tiene un directorio en C: llamado bat_files, y en ese directorio hay un archivo llamado example.bat. En este caso, %~dp0
(combinando el d y p modificadores) se expandirá a C:bat_files.

Verificar este artículo de Microsoft para una explicación completa.

Además, echa un vistazo este hilo del foro.

Y una referencia más clara de aquí:

  • %CmdCmdLine% devolverá la línea de comando completa tal 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 la 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

AÑADIR 1

Acabo de encontrar una buena referencia para el misterioso ~ operador de tilde.

los %~ se llama cadena tilde de porcentaje operador. Puedes encontrarlo en situaciones como: %~0.

los :~ se llama cadena tilde de colon operador. Puedes encontrarlo como %SOME_VAR:~0,-1%.

AÑADIR 2 – 1:12 PM 7/6/2018

%1-%9 consulte los argumentos de la línea de comandos. Si ellos estan no valores de ruta válidos, %~dp1%~dp9 todos se expandirán al mismo valor que %~dp0. Pero si ellos están valores de ruta válidos, se expandirán a los suyos controlador / valor de ruta.

Por ejemplo: (batch.bat)

@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on

Ejecutar 1:

D:Workbench>batch arg1 arg2

~dp0= D:Workbench
~dp1= D:Workbench
~dp2= D:Workbench

Ejecutar 2:

D:Workbench>batch c:123a.exe e:abcb.exe

~dp0= D:Workbench
~dp1= c:123
~dp2= e:abc

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

ExpressJS – Cookies

tCdESxRGgdZcnbXWmVXD64 1200 80

Reserva de Mass Effect Legendary Edition: obtén el mejor precio y un botín adicional