(Tout d'abord, je voudrais recommander ce site de référence utile pour le lot:
http://ss64.com/nt/ )
Puis juste une autre explication utile: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
La variable% ~ dp0
Le% ~ dp0 (qui est un zéro) variable lorsque référencé dans un fichier batch Windows va étendre à la d lettre et rive p ath de ce fichier batch.
Les variables% 0-% 9 font référence aux paramètres de ligne de commande du fichier de commandes. % 1-% 9 fait référence aux arguments de la ligne de commande après le nom du fichier de commandes. % 0 fait référence au fichier batch lui-même.
Si vous suivez le pourcentage (%) avec un caractère tilde (~), vous pouvez insérer un ou des modificateurs avant le numéro de paramètre pour modifier la façon dont la variable est développée. Le modificateur d se développe en lettre de lecteur et le modificateur p se développe en chemin du paramètre.
Exemple: Disons que vous avez un répertoire sur C: appelé bat_files, et dans ce répertoire se trouve un fichier appelé example.bat. Dans ce cas,% ~ dp0 (combinant les modificateurs d et p) se développera en C: \ bat_files.
Consultez cet article Microsoft pour une explication complète.
Consultez également ce fil de discussion .
Et une référence plus claire d' ici :
%CmdCmdLine%
renverra la ligne de commande entière transmise à CMD.EXE
%*
renverra le reste de la ligne de commande à partir du premier argument de ligne de commande (dans Windows NT 4,% * inclut également tous les espaces de tête)
%~dn
renverra la lettre de lecteur de% n (n peut aller de 0 à 9) si% n est un chemin d'accès ou un nom de fichier valide (pas UNC)
%~pn
renverra le répertoire de% n si% n est un chemin d'accès ou un nom de fichier valide (pas UNC)
%~nn
renverra le nom de fichier uniquement de% n si% n est un nom de fichier valide
%~xn
renverra l'extension de fichier uniquement de% n si% n est un nom de fichier valide
%~fn
renverra le chemin d'accès complet de% n si% n est un nom de fichier ou un répertoire valide
AJOUTER 1
Je viens de trouver une bonne référence pour le mystérieux ~
opérateur tilde.
La %~
chaîne est appelée opérateur de pourcentage tilde . Vous pouvez le trouver dans des situations telles que : %~0
.
La :~
chaîne est appelée opérateur tilde du côlon . Vous pouvez le trouver comme %SOME_VAR:~0,-1%
.
AJOUTER 2 - 1:12 PM 7/6/2018
%1-%9
reportez-vous aux arguments de la ligne de commande. S'ils ne sont pas des valeurs de chemin valides, %~dp1
- %~dp9
s'étendra tous à la même valeur que %~dp0
. Mais si ce sont des valeurs de chemin valides, elles se développeront à leur propre valeur de pilote / chemin.
Par exemple: (batch.bat)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
Exécuter 1:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
Exécuter 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\