gotchas ให้ระวัง:
หากคุณดับเบิลคลิกที่ไฟล์แบตช์%0จะถูกล้อมรอบด้วยเครื่องหมายคำพูด ตัวอย่างเช่นหากคุณบันทึกไฟล์นี้เป็นc:\test.bat:
@echo %0
@pause
การคลิกสองครั้งที่มันจะเปิดพร้อมท์คำสั่งใหม่พร้อมเอาท์พุท:
"C:\test.bat"
แต่ถ้าคุณเป็นครั้งแรกเปิดคำสั่งที่รวดเร็วและเรียกมันว่าโดยตรงจากคำสั่งที่%0จะอ้างถึงสิ่งที่คุณได้พิมพ์ หากคุณพิมพ์test.batEnterเอาต์พุตของ%0จะไม่มีเครื่องหมายอัญประกาศเพราะคุณพิมพ์ไม่มีเครื่องหมายคำพูด:
c:\>test.bat
test.bat
หากคุณพิมพ์testEnterเอาต์พุตของ%0จะไม่มีส่วนขยายด้วยเนื่องจากคุณพิมพ์ไม่มีส่วนขยาย:
c:\>test
test
เหมือนกันสำหรับ tEsTEnter:
c:\>tEsT
tEsT
หากคุณพิมพ์"test"Enterเอาต์พุตของ%0จะมีเครื่องหมายอัญประกาศ (เนื่องจากคุณพิมพ์) แต่ไม่มีส่วนขยาย:
c:\>"test"
"test"
สุดท้ายหากคุณพิมพ์"C:\test.bat"ผลลัพธ์จะเหมือนกับคุณคลิกสองครั้ง:
c:\>"C:\test.bat"
"C:\test.bat"
โปรดทราบว่าสิ่งเหล่านี้ไม่ใช่ค่าที่เป็นไปได้ทั้งหมด%0อาจเป็นเพราะคุณสามารถเรียกใช้สคริปต์จากโฟลเดอร์อื่น:
c:\some_folder>/../teST.bAt
/../teST.bAt
ตัวอย่างทั้งหมดที่แสดงด้านบนจะมีผล%~0เช่นกันเพราะเอาต์พุตของ%~0เป็นเพียงเอาต์พุตของ%0 เครื่องหมายคำพูดลบ (ถ้ามี)
echo %~dp0จะไม่ทำงานที่บรรทัดคำสั่งเฉพาะในไฟล์แบตช์ ดุจ!