วิธีการตรวจสอบให้แน่ใจว่า% PATH% หายไปหากไม่ได้กำหนดเส้นทางไว้


2

ฉันพยายามทำสิ่งต่อไปนี้

set PATH=
echo foo%PATH%bar

และฉันได้รับ

foo%PATH%bar

ถ้าฉันเพิ่มช่องว่างหลังจากเครื่องหมาย = ในชุดฉันจะได้รับ

foo bar

ฉันก็ลอง

set PATH=""

และฉันได้รับ

foo""bar

สิ่งที่ฉันต้องการคือ

foobar

คำถามที่คล้ายกันในเว็บไม่สามารถแก้ปัญหาได้ เห็นได้ชัดว่าหากไม่ได้กำหนดพฤติกรรมควรจะเป็นอย่างที่ฉันคาดหวัง


ฉันไม่ได้เพิ่มสิ่งนี้เป็นคำตอบเพราะมันอาจไม่ได้แก้ปัญหาของคุณ แต่ฉันเพิ่งพบว่ามันทำงานได้อย่างที่คาดไว้ในแบตช์ มันก็ต่อเมื่อรันด้วยตนเองจากบรรทัดคำสั่งที่ปัญหาของคุณดูเหมือนจะปรากฏขึ้น
Matt Champion

คำตอบ:


1

ฉันจะตรวจสอบว่าตัวแปรไม่ได้ถูกกำหนดได้อย่างไร?

ฉันพยายามทำสิ่งต่อไปนี้:

set PATH=
echo foo%PATH%bar

และฉันได้รับ:

foo%PATH%bar

คุณสามารถใช้ได้ if not defined เพื่อสร้างผลลัพธ์ที่คุณต้องการ

ใช้คำสั่งต่อไปนี้ใน cmd เปลือก:

if not defined PATH (echo foobar) else echo foo%path%bar

ตัวอย่างผลลัพธ์:

F:\test>set PATH=

F:\test>if not defined PATH (echo foobar) else echo foo%path%bar
foobar

F:\test>

และถ้า PATH ถูกกำหนด:

F:\test>if not defined PATH (echo foobar) else echo foo%path%bar
fooC:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\apps\Calibre\;;C:\apps\NTP\bin;C:\Program Files (x86)\QuickTime\QTSystem\bar

F:\test>

---

อ่านเพิ่มเติม

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