Il commento "rem" nel file .bat causa l'errore "25 era imprevisto in questo momento"
Non è strano? I comandi .bat rem hanno una sorta di codice di escape?
file.bat:
rem https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Eseguendolo:
C:\Users\admin>file.bat
25 was unexpected at this time.
C:\Users\admin>https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Non vedo alcun livello di errore.
Risposte
Il rem
comando supporta un argomento, vale a dire /?
, ed è avido di esso. Il tuo URL contiene quella stringa.
La =
è un separatore standard token (come SPACE, TAB, ,
, ;
), e quindi il resto sembra essere interpretato come comando un'altra (non valido).
Mettere il testo del commento tra virgolette aiuta qui poiché /?
non viene più rilevato:
rem "https://sourceforge.net/p/jedit/bugs/4084/?limit=25"
Quando scrivi questo:
rem/ https://sourceforge.net/p/jedit/bugs/4084/?limit=25
anche la /?
porzione non viene più rilevata. Tuttavia, i caratteri speciali come &
, <
, >
, |
, (
e )
vengono quindi riconosciuti.
Un'altra alternativa è usare un ::
commento in stile, che in realtà è un'etichetta non valida (le etichette iniziano con a :
, vedi goto /?
e call /?
):
:: https://sourceforge.net/p/jedit/bugs/4084/?limit=25
I caratteri speciali non sono un problema qui, ma non devono essere utilizzati all'interno di un blocco di codice tra parentesi.
Oh, è strano. Rem è come un normale comando che risponde a /? per chiedere aiuto, anche se /? è sepolto da qualche parte in un'altra stringa. Mi è stato detto che mettere l'indirizzo tra virgolette lo risolve.
C:\Users\admin>rem /?
Records comments (remarks) in a batch file or CONFIG.SYS.
REM [comment]
Oppure l'intera stringa senza il 25 dà lo stesso risultato:
rem https://sourceforge.net/p/jedit/bugs/4084/?limit=
Records comments (remarks) in a batch file or CONFIG.SYS.
REM [comment]