ความคิดเห็น“ rem” ในไฟล์. bat ทำให้เกิดข้อผิดพลาด“ 25 ไม่คาดคิดในขณะนี้”
นี่ไม่แปลกเหรอ? คำสั่ง. bat rem มีรหัส Escape บางประเภทหรือไม่?
file.bat:
rem https://sourceforge.net/p/jedit/bugs/4084/?limit=25
เรียกใช้:
C:\Users\admin>file.bat
25 was unexpected at this time.
C:\Users\admin>https://sourceforge.net/p/jedit/bugs/4084/?limit=25
ฉันไม่เห็นระดับข้อผิดพลาดใด ๆ
คำตอบ
rem
คำสั่งสนับสนุนหนึ่งอาร์กิวเมนต์คือ/?
และมันก็เป็นความโลภมัน URL ของคุณมีสตริงนั้น
=
เป็นตัวคั่นโทเค็นมาตรฐาน (เช่นเดียวกับSPACE, TAB, ,
, ;
) และส่วนที่เหลือดูเหมือนว่าจะถูกตีความว่าเป็นคำสั่งอื่น (ไม่ถูกต้อง)
การใส่ข้อความหมายเหตุระหว่างเครื่องหมายคำพูดช่วยได้ที่นี่เนื่องจาก/?
ตรวจไม่พบอีกต่อไป:
rem "https://sourceforge.net/p/jedit/bugs/4084/?limit=25"
เมื่อคุณเขียนสิ่งนี้:
rem/ https://sourceforge.net/p/jedit/bugs/4084/?limit=25
/?
ส่วนไม่มีการตรวจพบเกินไป แต่ตัวอักษรพิเศษชอบ&
, <
, >
, |
, (
และ)
ได้รับการยอมรับแล้ว
อีกทางเลือกหนึ่งคือการใช้ a- ::
style comment ซึ่งจริงๆแล้วเป็นป้ายกำกับที่ไม่ถูกต้อง (ป้ายกำกับขึ้นต้นด้วย a :
, ดูgoto /?
และcall /?
):
:: https://sourceforge.net/p/jedit/bugs/4084/?limit=25
อักขระพิเศษไม่ใช่ปัญหาที่นี่ แต่ต้องไม่ใช้ภายในบล็อกโค้ดที่อยู่ในวงเล็บ
โอ้มันแปลกมาก Rem เป็นเหมือนคำสั่งทั่วไปที่ตอบโจทย์ /? เพื่อขอความช่วยเหลือแม้ว่า /? ถูกฝังอยู่ในสตริงอื่น ฉันบอกว่าการใส่ที่อยู่ใน doublequotes จะช่วยแก้ไขได้
C:\Users\admin>rem /?
Records comments (remarks) in a batch file or CONFIG.SYS.
REM [comment]
หรือสตริงทั้งหมดที่ไม่มี 25 ให้ผลลัพธ์เหมือนกัน:
rem https://sourceforge.net/p/jedit/bugs/4084/?limit=
Records comments (remarks) in a batch file or CONFIG.SYS.
REM [comment]