Beberapa gotcha yang harus diperhatikan:
Jika Anda mengklik dua kali file batch %0akan dikelilingi oleh tanda kutip. Misalnya, jika Anda menyimpan file ini sebagai c:\test.bat:
@echo %0
@pause
Mengklik dua kali akan membuka prompt perintah baru dengan output:
"C:\test.bat"
Tetapi jika Anda pertama kali membuka prompt perintah dan memanggilnya langsung dari prompt perintah itu, %0akan merujuk pada apa pun yang Anda ketikkan . Jika Anda mengetik test.batEnter, output dari %0tidak memiliki tanda kutip karena Anda mengetikkan tanda kutip:
c:\>test.bat
test.bat
Jika Anda mengetik testEnter, output dari tidak %0akan memiliki ekstensi juga, karena Anda mengetikkan tidak ada ekstensi:
c:\>test
test
Sama untuk tEsTEnter:
c:\>tEsT
tEsT
Jika Anda mengetik "test"Enter, output dari %0akan memiliki tanda kutip (karena Anda mengetiknya) tetapi tidak ada ekstensi:
c:\>"test"
"test"
Terakhir, jika Anda mengetik "C:\test.bat", hasilnya akan persis seolah-olah Anda telah mengklik dua kali:
c:\>"C:\test.bat"
"C:\test.bat"
Perhatikan bahwa ini tidak semua nilai yang dimungkinkan %0karena Anda dapat memanggil skrip dari folder lain:
c:\some_folder>/../teST.bAt
/../teST.bAt
Semua contoh yang ditunjukkan di atas juga akan mempengaruhi %~0, karena output %~0hanyalah output dari %0 tanda kutip minus (jika ada).
echo %~dp0tidak akan bekerja di command line, hanya di file batch. Duh!