Pregunta ¿Cómo "comentar" (agregar comentario) en un lote / cmd? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Tengo un archivo de proceso por lotes que ejecuta varios scripts de Python que hacen modificaciones a la tabla.

  1. Quiero que los usuarios comenten los 1-2 scripts Python que no desean ejecutar, en lugar de eliminarlos del archivo por lotes (¡así el próximo usuario sabe que estos scripts existen como opciones!)

  2. También quiero agregar comentarios para llamar su atención específicamente sobre las variables que necesitan actualizar en el archivo Batch antes de ejecutarlo. Veo que puedo usar REM. Pero parece que eso es más para actualizar al usuario con el progreso después de que lo haya ejecutado.

¿Hay una sintaxis para agregar un comentario de manera más apropiada?


640
2018-06-29 21:40


origen


Respuestas:


los rem el comando es de hecho para los comentarios. No actualiza inherentemente a nadie después de ejecutar el script. Algunos autores de scripts pueden usarlo de esa manera en lugar de echo, sin embargo, porque por defecto el intérprete de lote imprimir cada comando antes de que se procese. Ya que rem los comandos no hacen nada, es seguro imprimirlos sin efectos secundarios. Para evitar imprimir un comando, prefijelo con @, o, para aplicar esa configuración durante todo el programa, ejecute @echo off. (Sus echo off para evitar imprimir más comandos; el @ es evitar la impresión ese comando antes de que la configuración de eco surta efecto).

Entonces, en su archivo por lotes, puede usar esto:

@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py

642
2018-06-29 21:49



your commands here :: commenttttttttttt

o

your commands here REM commenttttttttttt

Notas:

  • utilizando ::  podría causar diferentes errores en la lógica anidada (IF-ELSE, FOR bucles, etc.), y puede intentar usar el código estándar REM  en la mayoría de los casos.

  • En algunos casos, es posible que deba agregar & firmar: & :: commenttttttttttt

PD. No tengo idea de por qué los inventores no pudieron encontrar un mejor símbolo que REM .


713
2018-05-30 15:02



No, los viejos y simples archivos por lotes usan REM como un comentario. ECHO es el comando que imprime algo en la pantalla.

Para "comentar" secciones del archivo que puede usar GOTO. Un ejemplo de todos estos comandos / técnicas:

REM it starts here the section below can be safely erased once the file is customised
ECHO Hey you need to edit this file before running it!  Check the instructions inside
ECHO Now press ctrl-c to interrupt execution or enter to continue
PAUSE
REM erase the section above once you have customised the file
python executed1.py
ECHO Skipping some stuff now
GOTO End
python skipped1.py
python skipped2.py
:END
python executed2.py

¿Qué puedo decir? los archivos por lotes son una reliquia de tiempos pasados, son torpes y feos.

Puedes leer más en este sitio web.

EDIT: modificó un poco el ejemplo para que contenga los elementos que aparentemente está buscando.


42
2018-06-29 21:46



El :: en lugar de REM se usó preferentemente en los días en que las computadoras no eran muy rápidas. La línea REM'ed se lee y luego se ignora. :: la línea ed se ignora por completo. Esto podría acelerar su código en "los viejos tiempos". Además, después de un REM necesitas un espacio, después :: no.

Y como se dijo en el primer comentario: puede agregar información a cualquier línea que sienta la necesidad de

SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS

En cuanto a la omisión de partes. Poner REM en frente de cada línea puede consumir bastante tiempo. Como se mencionó al usar GOTO para omitir partes, es una manera fácil de omitir grandes partes de código. Asegúrese de establecer una: ETIQUETA en el punto donde desea que el código continúe.

SOME CODE

GOTO LABEL  ::REM OUT THIS LINE TO EXECUTE THE CODE BETWEEN THIS GOTO AND :LABEL

SOME CODE TO SKIP
.
LAST LINE OF CODE TO SKIP

:LABEL
CODE TO EXECUTE

27
2017-11-02 21:33



Comentarios de línea múltiple

Si hay un gran número de líneas que desea comentar, será mejor si puede hacer comentarios de múltiples líneas en lugar de comentar cada línea.

El lenguaje por lotes no tiene bloques de comentarios, aunque hay formas de lograr el efecto.

GOTO EndComment1
This line is comment.
And so is this line.
And this one...
:EndComment1

Puedes usar GOTO Etiqueta y: Etiqueta para hacer comentarios en bloque.

O bien, si el bloque de comentarios aparece al final del archivo por lotes, puede escribir EXIT al final del código y luego cualquier cantidad de comentarios para su comprensión.

@ECHO OFF
REM Do something
  •
  •
REM End of code; use GOTO:EOF instead of EXIT for Windows NT and later
EXIT

Start of comment block at end of batch file
This line is comment.
And so is this line.
And this one...

Fuente de comentarios


21
2017-08-24 10:50



Poniendo comentarios en la misma línea con los comandos: use & :: comment

color C          & :: set red font color
echo IMPORTANT INFORMATION
color            & :: reset the color to default

Explicación:

& separa dos comandos, entonces en este caso color C es el primer comando y :: set red font color es el segundo


Importante:

Esta declaración con comentario parece intuitivamente correcta:

goto error1         :: handling the error

pero es no es un uso válido del comentario. Funciona solo porque goto ignora todos los argumentos después del primero. La prueba es fácil, esto goto tampoco fallará:

goto error1 handling the error

Pero intento similar

color 17            :: grey on blue

falla al ejecutar el comando debido a 4 argumentos desconocidos para el color mando: ::, grey, on, blue.

Solo funcionará como:

color 17     &      :: grey on blue

Entonces el símbolo es inevitable.


9
2018-06-09 14:38