รับพา ธ ที่สัมพันธ์กับไฟล์แบตช์ - ไม่ใช่ไดเรกทอรีที่ใช้งานได้


1

ฉันมีไฟล์แบตช์ใน E: \ dir0 \ dir1 ที่เรียก exe0.exe ในโฟลเดอร์นั้น ฉันต้องการอาร์กิวเมนต์แรกของ exe เป็น E: \ dir0 \ dir2 \ dir3 \ script.js

ปัญหาคือชื่อของ dir0 (และไดเรกทอรีใด ๆ ที่มี) และตัวอักษรของไดรฟ์สามารถเปลี่ยนได้ ฉันได้รับเท่าที่:

exe0.exe %~d0\dir0\dir2\dir3\script.js %*

ตอนนี้ฉันต้องทำให้เส้นทางสัมพัทธ์อย่างใด (กับ \ .. ?)

คำตอบ:


0

เพื่อความชัดเจนดูเหมือนว่าคุณกำลังอธิบายโครงสร้างโฟลเดอร์ที่มีลักษณะดังนี้:

{unknown}\dir0\dir1\batfile.bat
{unknown}\dir0\dir1\exe0.exe
{unknown}\dir0\dir2\dir3\script.js

วิธีง่ายๆในการทำเช่นนี้คือหลีกเลี่ยงการใช้อักษรกำกับไดรฟ์และใช้เส้นทางสัมพัทธ์แทนเช่นนี้

exe0.exe ..\dir2\dir3\script.js

อย่างไรก็ตามหาก exe ของคุณคาดว่าจะได้รับไดรฟ์และเส้นทางแบบเต็มเนื่องจากเป็นพารามิเตอร์คุณจะต้องเพิ่มอีกเล็กน้อย สิ่งนี้จะทำงาน:

pushd ..\dir2\dir3\script.js
set "ScriptDir=%cd%"
popd
exe0.exe "%ScriptDir%"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.