Como faço para fazer comentários em um prompt de comando do Windows?


Respostas:


90

REM é a maneira padrão:

REM this is a comment

Você também pode usar a convenção de dois pontos, comumente vista em arquivos em lote:

:: another comment

Um único ponto e vírgula seguido por uma string é um rótulo, mas dois pontos e qualquer coisa depois disso são ignorados silenciosamente. Alguém poderia argumentar que esse formulário é mais legível que o REMcomando.

Observe que esses dois métodos funcionam apenas no início de uma linha. Se você deseja anexar um comentário a um comando, pode usá-los com o caractere de concatenação de comando ( &), assim:

dir & REM a comment
dir &:: another one

2
Obrigado. Isso só funciona se for a primeira coisa encontrada, em vez de fazer algo assim dir :: comment?
Andrew Grimm

11
Primeiro um link útil . Então, comentários em dois pontos parecem não funcionar dentro de blocos de código (código entre parênteses, como em if/ forloops).
x-yuri

@efotinis, é remrealmente um comando? Não ::seria melhor porque ele próprio está sendo ignorado?
Pacerier

@Pacerier, yes REMé um comando real, mas está incorporado no CMD.EXE, portanto deve ser bastante eficiente. Por outro lado, ::pode ser mais rápido, pois ignora tudo no final da linha (por exemplo, não verifica comandos encadeados usando &).
Efotinis

2
Lembre-se de que o uso ::pode quebrar seu código em alguns casos, como a última linha de um bloco de código.
bryc

16

Você prefixa seu comentário com a palavra REM.

REM This is a comment.

Mas se você deseja que o seu comentário seja impresso novamente, você deve repetir:

echo This is a comment you'll see.

Aceitando como trabalho, mas eu só teria sido um pouco mais surpreso se a resposta foi BTW, como em lolcode.com/specs/1.2#comments
Andrew Grimm

5

O REMcomando apenas observa (por exemplo, diga algo como um comentário) que a linha seja executada. No entanto, se @echo offnão estiver no arquivo em lotes, essa linha ainda ecoará na tela.

Para impedir que essas linhas sejam mostradas, você pode executar uma das três coisas.

  1. Adicionar @echo off ao arquivo em lotes :
    se você deseja ocultar todos os comandos e as linhas REM, adicione @echo off como a primeira linha no arquivo em lotes.
  2. Altere o REM para @REM :
    se você deseja exibir os comandos quando o arquivo em lotes é executado, mas ainda deseja ocultar as linhas REM, digite @REM em vez de REM.
  3. Use: :( ie etiqueta inválida ) em vez de REM :
    Finalmente, o uso de :: como comando de observação em vez de REM também impede o eco da linha comentada.

fonte


2

Acredito que a resposta fornecida por Bernhard esteja incorreta.

Pelo menos através da vitória 7,

rem comment

em um arquivo em lotes será impresso na saída. Para suprimir a impressão, use

@ rem comment

ou

@rem comment

O mesmo vale para outros comandos, que por padrão são ecoados no console.


O comando REM commentnão imprimirá nenhuma saída na tela. Para uma demonstração ao vivo, abra um prompt de comando e echo commentexecute o comando rem comment. Observe que o echocomando imprime a saída na tela enquanto o remcomando não.
Eu digo Restabelecer Monica

Eu sempre uso @REM commentnos meus scripts de lote para evitar que eles apareçam. Eu sugeriria editar a resposta de Bernards para incluir o uso de @ before REM em scripts em lote para evitar que ela apareça em vez de postar uma resposta totalmente nova.
Robin Hood

3
@RobinHood, arquivos em lote repetem todos os comandos por padrão (para fins de depuração), é por isso que é habitual iniciá-los @ECHO OFF & SETLOCAL .... Dessa forma, você não precisa anexar @todas as linhas e pode alternar facilmente para ECHO ONquando algo der errado e precisar fazer alguns testes.
Efotinis
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.