7
สคริปต์แยกวิเคราะห์คำสั่งของ Windows (CMD.EXE) ทำอย่างไร
ฉันวิ่งเข้าไปในss64.comซึ่งให้ความช่วยเหลือที่ดีเกี่ยวกับวิธีการเขียนสคริปต์แบทช์ที่ Windows Command Interpreter จะทำงาน อย่างไรก็ตามฉันไม่สามารถหาคำอธิบายที่ดีเกี่ยวกับไวยากรณ์ของสคริปต์แบบแบตช์ว่าสิ่งต่าง ๆ ขยายหรือไม่ขยายและวิธีการหลบหนีสิ่งต่าง ๆ นี่คือคำถามตัวอย่างที่ฉันไม่สามารถแก้ไขได้: ระบบใบเสนอราคามีการจัดการอย่างไร? ฉันสร้างสคริปต์TinyPerl ( foreach $i (@ARGV) { print '*' . $i ; }) รวบรวมมันและเรียกมันด้วยวิธีนี้: my_script.exe "a ""b"" c" →ผลลัพธ์คือ *a "b*c my_script.exe """a b c""" →เอาท์พุทมัน *"a*b*c" echoคำสั่งภายในทำงานอย่างไร สิ่งที่ถูกขยายภายในคำสั่งนั้น? ทำไมฉันต้องใช้for [...] %%Iในสคริปต์ไฟล์ แต่for [...] %Iในเซสชันแบบโต้ตอบ? ตัวหนีคืออะไรและในบริบทใด จะหลีกเลี่ยงเครื่องหมายเปอร์เซ็นต์ได้อย่างไร? ตัวอย่างเช่นฉันจะสะท้อนอย่าง%PROCESSOR_ARCHITECTURE%แท้จริงได้อย่างไร ฉันพบว่าecho.exe %""PROCESSOR_ARCHITECTURE%งานได้มีวิธีแก้ไขปัญหาที่ดีกว่าหรือไม่ …