Tengo un archivo por lotes que ejecuta varios scripts de Python que realizan modificaciones en la tabla.
Quiero que los usuarios comenten los scripts de Python 1-2 que no quieren ejecutar, en lugar de eliminarlos del archivo por lotes (¡para que el siguiente usuario sepa que estos scripts existen como opciones!)
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 progreso después de que lo haya ejecutado.
¿Existe una sintaxis para agregar un comentario más apropiadamente?
batch-file
cmd
comments
comment-conventions
usuario1397044
fuente
fuente

Rem SthCommand o Use esta marca::: SthRespuestas:
El
remcomando es de hecho para comentarios. No actualiza inherentemente a nadie después de ejecutar el script. Sinechoembargo, algunos autores de scripts pueden usarlo de esa manera en lugar de hacerlo , porque de forma predeterminada el intérprete por lotes imprimirá cada comando antes de procesarlo. Como losremcomandos no hacen nada, es seguro imprimirlos sin efectos secundarios. Para evitar imprimir un comando, agregue el prefijo@o, para aplicar esa configuración en todo el programa, ejecute@echo off. (Esecho offpara evitar imprimir más comandos;@es para evitar imprimir ese comando antes de que la configuración de eco tenga efecto).Entonces, en su archivo por lotes, puede usar esto:
fuente
REM This whole line is a comment@echo off :: This comment is inline#comentarios porque#, evidentemente, podría no ser un designador de comentarios válido en todos los shells que Configure está destinado a admitir; ver línea 3.Use
::oREMPERO (como la gente señaló):
&carácter:your commands here & :: commentttttttttttIF/ELSE,FORbucles, etc.) se usaREMporque::da un error.::puede fallar dentrosetlocal ENABLEDELAYEDEXPANSIONfuente
cd "C:\Folder" ::this throws a syntax errorgit add :: blah this is not a commentcon "fatal: pathpec 'blah' no coincide con ningún archivo"&entre el código y el comentario::. Para ilustrar, abra cmd prompt y ejecutedir ::blahlo que no enumera el contenido.y lo compara con lodir & ::blahque sí lo hace::scripts de errores consetlocal ENABLEDELAYEDEXPANSIONyforNo, los archivos por lotes antiguos simples se usan
REMcomo comentario.ECHOes el comando que imprime algo en la pantalla.Para "comentar" secciones del archivo que podría usar
GOTO. Un ejemplo de todos estos comandos / técnicas:¿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ó un poco el ejemplo para que contenga los elementos que aparentemente está buscando.
fuente
El :: en lugar de REM se usaba preferiblemente en los días en que las computadoras no eran muy rápidas. La línea REM'ed se lee y luego se ignora. :: 'línea ed se ignoran todo el camino. Esto podría acelerar su código en "los viejos tiempos". Además, después de un REM necesitas un espacio, después de :: no lo necesitas.
Y como se dijo en el primer comentario: puede agregar información a cualquier línea que sienta la necesidad de
En cuanto al salto 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 un: LABEL en el punto donde desea que continúe el código.
fuente
::eremigualmente.\ny luego comienza a analizar nuevamente [cita requerida]Comentarios de varias líneas
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.
Vea esta publicación de Rob van der Woude en bloques de comentarios :
fuente
iflugar degotostackoverflow.com/q/9074476/995714 ss64.com/vb/syntax-hybrid.html stackoverflow.com/a/34512715/995714Poner comentarios en la misma línea con los comandos: use
& :: commentExplicación:
&separa dos comandos , por lo que en este casocolor Ces el primer comando y:: set red font colores el segundo.Importante:
Esta declaración con comentario parece intuitivamente correcta:
pero no es un uso válido del comentario. Funciona solo porque
gotoignora todos los argumentos más allá del primero. La prueba es fácil, estogototampoco fallará:Pero intento similar
falla la ejecución del comando debido a 4 argumentos desconocidos para el
colorcomando:::,grey,on,blue.Solo funcionará como:
Entonces, el signo y es inevitable.
fuente
Puedes comentar algo usando
::oREM:o
Para hacerlo en la misma línea que un comando, debe agregar un ampersand:
o
Nota:
::en lógica anidada (IF-ELSE,FORbucles, etc.) causará un error. En esos casos, useREMen su lugar.fuente
@Radose fusionó en la respuesta en ese momento y gracias por eso, simplemente preferí otro estilo para la respuesta y usé un estilo diferente.Este es un tema antiguo y me gustaría agregar mi comprensión aquí para ampliar el conocimiento de este interesante tema.
La diferencia clave entre REM y :: es:
REM es un comando en sí mismo, mientras que :: NO lo es.
Podemos tratar :: como un token que tan pronto como el analizador CMD encuentre el primer espacio no en blanco en una línea es este :: token, simplemente saltará toda la línea y leerá la siguiente línea. Es por eso que REM debe ir seguido de al menos un espacio en blanco para poder funcionar como un comentario para la línea, mientras que :: no necesita ningún espacio en blanco detrás de ella.
Que REM es un comando en sí mismo puede entenderse mejor a partir de la siguiente sintaxis FOR
La sintaxis básica de FOR es la siguiente
aquí
<Command>puede haber cualquier comando válido Para que podamos escribir la siguiente línea de comando válida comoremes un comandoSin embargo, NO PODEMOS escribir la siguiente línea ya
::que no es un comandofuente
::es una etiqueta (no válida) (que explica su comportamiento) y, por lo tanto, no debe usarse (aunque todavía es bastante común)Puede agregar comentarios al final de un archivo por lotes con esta sintaxis:
Solo asegúrate de nunca usar paréntesis de cierre.
Atribuciones: Leo Guttirez Ramirez en https://www.robvanderwoude.com/comments.php
fuente