(Innanzitutto, vorrei raccomandare questo utile sito di riferimento per il batch:
http://ss64.com/nt/ )
Quindi solo un'altra utile spiegazione: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
La variabile% ~ dp0
L'% ~ dp0 (che è uno zero) variabile quando si fa riferimento all'interno di un file batch di Windows si espanderà al d lettera rive e p ath di quel file batch.
Le variabili% 0-% 9 si riferiscono ai parametri della riga di comando del file batch. % 1-% 9 fa riferimento agli argomenti della riga di comando dopo il nome del file batch. % 0 si riferisce al file batch stesso.
Se segui il carattere percentuale (%) con un carattere tilde (~), puoi inserire uno o più modificatori prima del numero del parametro per modificare il modo in cui la variabile viene espansa. Il modificatore d si espande nella lettera di unità e il modificatore p si espande nel percorso del parametro.
Esempio: supponiamo che tu abbia una directory su C: chiamata bat_files, e in quella directory c'è un file chiamato esempio.bat. In questo caso,% ~ dp0 (combinando i modificatori d e p) si espanderà in C: \ bat_files.
Dai un'occhiata a questo articolo Microsoft per una spiegazione completa.
Inoltre, dai un'occhiata a questo thread del forum .
E un riferimento più chiaro da qui :
%CmdCmdLine%
restituirà l'intera riga di comando come passata a CMD.EXE
%*
restituirà il resto della riga di comando a partire dal primo argomento della riga di comando (in Windows NT 4,% * include anche tutti gli spazi iniziali)
%~dn
restituirà la lettera di unità di% n (n può variare da 0 a 9) se% n è un percorso o un nome file valido (no UNC)
%~pn
restituirà la directory di% n se% n è un percorso o un nome file valido (no UNC)
%~nn
restituirà il nome del file solo di% n se% n è un nome file valido
%~xn
restituirà l'estensione del file solo di% n se% n è un nome file valido
%~fn
restituirà il percorso completo di% n se% n è un nome file o una directory validi
AGGIUNGI 1
Ho appena trovato dei buoni riferimenti per il misterioso ~
operatore di tilde.
La %~
stringa si chiama percent tilde operator. Lo si può trovare in situazioni come: %~0
.
La :~
stringa si chiama operatore tilde due punti . Puoi trovarlo come %SOME_VAR:~0,-1%
.
AGGIUNGI 2 - 13:12 6/7/2018
%1-%9
fare riferimento agli arg della riga di comando. Se sono non valori percorso valido, %~dp1
- %~dp9
saranno tutti espanderà per lo stesso valore %~dp0
. Ma se sono valori di percorso validi, si espanderanno al proprio valore di driver / percorso.
Ad esempio: (batch.bat)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
Esegui 1:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
Esegui 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\