ฉันจะหลีกเลี่ยงเครื่องหมายแอมเปอร์แซนด์ในไฟล์แบตช์ (หรือจากบรรทัดคำสั่ง Windows) เพื่อใช้start
คำสั่งเพื่อเปิดหน้าเว็บที่มีแอมเปอร์แซนด์ใน URL ได้อย่างไร
ราคาคู่จะไม่ทำงานกับstart
; สิ่งนี้จะเริ่มหน้าต่างบรรทัดคำสั่งใหม่แทน
อัปเดต 1 : โซลูชันของ Wael Dalloul ใช้งานได้ นอกจากนี้หากมีอักขระที่เข้ารหัส URL (เช่นพื้นที่มีการเข้ารหัสเป็น% 20) ใน URL และอยู่ในไฟล์แบตช์ดังนั้น '%' จะต้องเข้ารหัสเป็น '%%' นี่ไม่ใช่กรณีในตัวอย่าง
ตัวอย่างจากบรรทัดคำสั่ง ( CMD.EXE
):
start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8
จะส่งผลให้
http://www.google.com/search?client=opera
ถูกเปิดในเบราว์เซอร์เริ่มต้นและข้อผิดพลาดเหล่านี้ในหน้าต่างบรรทัดคำสั่ง:
'rls' is not recognized as an internal or external command,
operable program or batch file.
'q' is not recognized as an internal or external command,
operable program or batch file.
'sourceid' is not recognized as an internal or external command,
operable program or batch file.
'ie' is not recognized as an internal or external command,
operable program or batch file.
'oe' is not recognized as an internal or external command,
operable program or batch file.
แพลตฟอร์ม: Windows XP 64 บิต SP2
+
อะไรที่ฉันควรใส่ไว้ด้านหน้าเพื่อหลบหนี
start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
งานเพราะPowerShell จะตัดคำพูดออก
start
ที่ทำให้การอ้างถึงข้อโต้แย้งล้มเหลวหากนำไปใช้โดยไม่คิด และโดยรวมแล้วฉันคิดว่าการใส่อาร์กิวเมนต์ในเครื่องหมายคำพูดนั้นง่ายกว่าและมีข้อผิดพลาดน้อยกว่าการหลบหนีตัวละครทุกตัวที่ต้องหลบหนี