ด้วยตัวแปรพรอมต์คุณไม่ควรใช้อักขระพิเศษ ใช้สิ่งspecial codes
ที่สามารถพบได้prompt /?
ทุกครั้งที่ทำได้
ในการตอบกลับความคิดเห็นของคุณ:
กับตัวแปรอื่น ๆ SetLocal EnableDelayedExpansion
ที่คุณสามารถใช้ จากนั้นอ้างถึงตัวแปรที่มี!
s แทน%
s
SETLOCAL command
ล่าช้าจะทำให้เกิดการขยายตัวของตัวแปรที่จะขยายตัวในเวลาดำเนินการมากกว่าในเวลาที่แยกตัวเลือกนี้เปิดอยู่ด้วย เมื่อการขยายตัวล่าช้าในตัวแปรผลอาจมีการอ้างอิงโดยใช้!variable_name!
(นอกเหนือจากปกติ%variable_name%
)
เนื่องจากตัวแปรถูกขยายเวลาการประมวลผลและอักขระพิเศษ>
(ในกรณีนี้) เป็นพิเศษเฉพาะในเวลาในการแยกวิเคราะห์คุณหลีกเลี่ยงปัญหานี้โดยสิ้นเชิง
ตัวอย่างเช่น:
SetLocal EnableDelayedExpansion
set test=World^>
set test2=Hello !test!
โปรดทราบว่า^
เป็นอักขระหลีกเลี่ยงที่อนุญาตให้คุณป้อนอักขระพิเศษ (ตัวแปรจะถูกเก็บเป็นWorld>
ดังนั้นถ้าคุณไม่set test=World^^^>
นำไปสู่ค่าที่เก็บไว้World^>
สิ่งนี้จะไม่ทำงานสำหรับคำถามของคุณ
หนีได้ซับซ้อน ยกตัวอย่างเช่นการตั้งค่าtest2
ไปยังตัวอักษร!test!
, คุณจำเป็นต้องใช้มิฉะนั้นคุณก็จะได้รับค่าของ^^!test^^!
test
ถ้าฉันต้องการจริง ๆ ฉันปกติเพียงแค่เปลี่ยนจำนวนตัวอักษรยกเว้นจนกว่าจะได้ผลมันง่ายกว่าการพยายามหากฎการแยกวิเคราะห์
$G
แทนการใช้งาน>
ในพรอมต์ พิมพ์prompt /?
เพื่อดูตัวเลือกทั้งหมด