ไฟล์แบตช์ Windows อ้างอิงไปยังไดเรกทอรีของตัวเอง


5

สมมติว่าคุณมีซึ่งความต้องการในการอ้างถึงC:\foo\foo.bat C:\foo\foo.txtอาจถูกเรียกใช้จากไดเรกทอรีอื่น แต่ต้องได้รับfoo.txtจากไดเรกทอรีของตัวเองไม่ใช่ไดเรกทอรีปัจจุบัน เห็นได้ชัดว่านี้สามารถทำได้โดยการวางเส้นทางแบบเต็มในC:\foo\foo.txtfoo.bat

การบิดคือไม่ทราบเวลาเขียนแบทช์ไฟล์ซึ่งมันจะอยู่ในเครื่องของผู้ใช้ดังนั้นไฟล์แบทช์ที่ต้องทำคือรับ foo.txt จากไดเรกทอรีที่ฉันอาศัยอยู่ที่ไหนก็ตาม ที่จะเกิดขึ้น (ในโปรแกรม C ที่ฉันใช้argv[0]แต่ดูเหมือนจะไม่ทำงานกับแบตช์ไฟล์)

มีวิธีทำเช่นนี้หรือไม่?

คำตอบ:


14
%~dp0

จะให้เส้นทางแบบเต็มไปยังสคริปต์

%~f0

จะให้เส้นทางแบบเต็มไปยังสคริปต์รวมถึงชื่อสคริปต์


หากคุณกำลังจะใช้shiftคำสั่งคุณจำเป็นต้องตรวจสอบให้แน่ใจว่าคุณแคชข้อมูลนั้นไว้ที่ใดที่หนึ่ง (เช่นตัวแปร) ก่อนที่จะทำshiftหรือคุณจะสูญเสียข้อมูลของคุณ
afrazier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.