ความคิดเห็น“ rem” ในไฟล์. bat ทำให้เกิดข้อผิดพลาด“ 25 ไม่คาดคิดในขณะนี้”

Aug 20 2020

นี่ไม่แปลกเหรอ? คำสั่ง. 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

ฉันไม่เห็นระดับข้อผิดพลาดใด ๆ

คำตอบ

4 aschipfl Aug 20 2020 at 06:10

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

อักขระพิเศษไม่ใช่ปัญหาที่นี่ แต่ต้องไม่ใช้ภายในบล็อกโค้ดที่อยู่ในวงเล็บ

js2010 Aug 20 2020 at 00:26

โอ้มันแปลกมาก 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]