(Pertama, saya ingin merekomendasikan situs referensi yang berguna ini untuk batch:
http://ss64.com/nt/ )
Kemudian hanyalah penjelasan bermanfaat lainnya: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
% ~ Dp0 Variabel
% The ~ dp0 (itu nol) variabel ketika direferensikan dalam file batch Windows akan memperluas ke d surat rive dan p ath dari file batch.
Variabel% 0-% 9 merujuk pada parameter baris perintah file batch. % 1-% 9 merujuk pada argumen baris perintah setelah nama file batch. % 0 merujuk pada file kumpulan itu sendiri.
Jika Anda mengikuti karakter persen (%) dengan karakter tilde (~), Anda dapat memasukkan pengubah sebelum nomor parameter untuk mengubah cara variabel diperluas. Pengubah d memperluas ke huruf pengandar dan pengubah p memperluas ke jalur parameter.
Contoh: Misalkan Anda memiliki direktori pada C: bernama bat_files, dan dalam direktori itu adalah file bernama example.bat. Dalam kasus ini,% ~ dp0 (menggabungkan pengubah d dan p) akan diperluas ke C: \ bat_files.
Lihat artikel Microsoft ini untuk penjelasan lengkap.
Juga, periksa utas forum ini .
Dan referensi yang lebih jelas dari sini :
%CmdCmdLine%
akan mengembalikan seluruh baris perintah sebagaimana diteruskan ke CMD.EXE
%*
akan mengembalikan sisa baris perintah mulai dari argumen baris perintah pertama (di Windows NT 4,% * juga termasuk semua spasi utama)
%~dn
akan mengembalikan huruf drive% n (n dapat berkisar dari 0 hingga 9) jika% n adalah jalur atau nama file yang valid (tidak ada UNC)
%~pn
akan mengembalikan direktori% n jika% n adalah jalur atau nama file yang valid (tidak ada UNC)
%~nn
akan mengembalikan nama file hanya dari% n jika% n adalah nama file yang valid
%~xn
akan mengembalikan ekstensi file hanya dari% n jika% n adalah nama file yang valid
%~fn
akan mengembalikan jalur terkualifikasi penuh dari% n jika% n adalah nama file atau direktori yang valid
TAMBAH 1
Baru saja menemukan beberapa referensi bagus untuk operator tilde misterius ~
.
The %~
string disebut persen tilde operator. Anda dapat menemukannya dalam situasi seperti: %~0
.
The :~
string disebut usus tilde operator. Anda dapat menemukannya seperti %SOME_VAR:~0,-1%
.
ADD 2 - 1:12 PM 7/6/2018
%1-%9
lihat args baris perintah. Jika tidak nilai jalur yang valid, %~dp1
- %~dp9
semua akan diperluas ke nilai yang sama dengan %~dp0
. Tetapi jika mereka adalah nilai-nilai jalan yang valid, mereka akan memperluas untuk mereka sendiri value driver / jalur.
Sebagai contoh: (batch.bat)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
Jalankan 1:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
Jalankan 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\