Le commentaire «rem» dans le fichier .bat provoque l'erreur «25 était inattendu pour le moment»

Aug 20 2020

N'est-ce pas bizarre? Les commandes .bat rem ont-elles une sorte de code d'échappement?

file.bat:

rem https://sourceforge.net/p/jedit/bugs/4084/?limit=25

L'exécuter:

C:\Users\admin>file.bat
25 was unexpected at this time.

C:\Users\admin>https://sourceforge.net/p/jedit/bugs/4084/?limit=25

Je ne vois aucun niveau d'erreur.

Réponses

4 aschipfl Aug 20 2020 at 06:10

La remcommande prend en charge un argument, à savoir /?, et elle en est gourmande. Votre URL contient cette chaîne.

L' =est un séparateur de jeton standard (comme SPACE, TAB, ,, ;), et de sorte que le reste ne semble plus être interprété comme une autre commande (invalide).

Mettre le texte de la remarque entre guillemets aide ici car il /?n'est plus détecté:

rem "https://sourceforge.net/p/jedit/bugs/4084/?limit=25"

Lorsque vous écrivez ceci:

rem/ https://sourceforge.net/p/jedit/bugs/4084/?limit=25

la /?portion n'est plus détectée aussi. Cependant, les caractères spéciaux comme &, <, >, |, (et )sont ensuite reconnus.


Une autre alternative consiste à utiliser un ::commentaire -style, qui est en fait une étiquette invalide (les étiquettes commencent par a :, voir goto /?et call /?):

:: https://sourceforge.net/p/jedit/bugs/4084/?limit=25

Les caractères spéciaux ne sont pas un problème ici, mais cela ne doit pas être utilisé dans un bloc de code entre parenthèses.

js2010 Aug 20 2020 at 00:26

Oh, c'est bizarre. Rem est comme une commande régulière qui répond à /? pour obtenir de l'aide, même si le /? est enterré quelque part dans une autre chaîne. On me dit que mettre l'adresse entre guillemets le résout.

C:\Users\admin>rem /?
Records comments (remarks) in a batch file or CONFIG.SYS.

REM [comment]

Ou toute cette chaîne sans le 25 donne le même résultat:

rem https://sourceforge.net/p/jedit/bugs/4084/?limit=

Records comments (remarks) in a batch file or CONFIG.SYS.

REM [comment]