variable script define comment batch bat batch-file cmd comments commenting comment-conventions

batch-file - script - variables in bat file



¿Cómo “comentar”(agregar comentario) en un lote/cmd? (7)

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

  1. Quiero que los usuarios comenten los 1-2 scripts de python que no desean ejecutar, en lugar de eliminarlos del archivo por lotes (¡así que 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 de Lote 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 haberlo ejecutado.

¿Hay una sintaxis para agregar más apropiadamente un comentario?


Comentarios multilínea

Si hay un gran número de líneas que desea comentar, será mejor si puede hacer comentarios de varias 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

Puede usar la etiqueta GOTO y: Etiqueta para hacer comentarios de 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 número 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...

robvanderwoude.com/comments.php


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

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

Explicación:

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

Importante:

Esta afirmación con comentario parece intuitivamente correcta:

goto error1 :: handling the error

pero no es un uso válido del comentario. Funciona solo porque goto ignora todos los argumentos pasados ​​el primero. La prueba es fácil, este 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 comando de color : :: , grey , on , blue .

Solo funcionará como:

color 17 & :: grey on blue

Así que el signo es inevitable.


El :: en lugar de REM se usó preferiblemente en los días en que las computadoras no eran muy rápidas. Las líneas REM''ed se leen y luego se ingnoran. :: La línea ed se ignora en todo momento. Esto podría acelerar su código en "los viejos tiempos". Más aún después de un REM necesitas un espacio, después de: 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 piezas. Poner REM delante de cada línea puede llevar bastante tiempo. Como se mencionó, usar GOTO para omitir partes es una manera fácil de omitir grandes piezas de código. Asegúrese de establecer una: ETIQUETA en el punto donde desea que continúe el código.

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


El comando rem es de hecho para comentarios. No actualiza intrínsecamente a nadie después de ejecutar el script. Sin embargo, algunos autores de guiones pueden usarlo de esa manera en lugar de echo , porque de manera predeterminada, el intérprete de lotes imprimirá cada comando antes de procesarse. Dado que los comandos rem no hacen nada, es seguro imprimirlos sin efectos secundarios. Para evitar la impresión de un comando, coloque un prefijo con @ o, para aplicar esa configuración en todo el programa, ejecute @echo off . (Es echo off para evitar imprimir más comandos; la @ es para evitar imprimir ese comando antes de que la configuración de eco tenga efecto).

Por lo tanto, 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


No, los archivos de proceso por lotes antiguos usan REM como comentario. ECHO es el comando que imprime algo en la pantalla.

Para "comentar" las secciones del archivo 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 .

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


Puedes comentar algo usando :: o REM :

your commands here :: commenttttttttttt

o

your commands here REM commenttttttttttt

Para hacerlo en la misma línea que un comando, debes agregar un signo:

your commands here & :: commenttttttttttt

o

your commands here & REM commenttttttttttt

Nota:

  • El uso de :: en lógica anidada ( IF-ELSE , FOR loops, etc ...) causará un error. En esos casos, use REM lugar.

Utilice :: o REM :

:: commenttttttttttt REM commenttttttttttt

PERO (como la gente notó):

  • Si usa en línea, necesita agregar & carácter:
    your commands here & :: commenttttttttttt
  • Dentro de la lógica anidada ( IF/ELSE , FOR loops, etc ...) use REM porque :: da un error.
  • :: puede fallar dentro de setlocal ENABLEDELAYEDEXPANSION