Encontre una forma de poner comentarios en el comando set, sin alterar el comportamiento del mismo.
Un ejemplo para que quede bien claro :
@echo off
set "saludo=Hola" // Este es mi comentario.
echo.%saludo%
Hay que entrecomillar la "asignación", luego pueden usar cualquier estilo de comentario.
Algunos ejemplos :
@echo off
set /p "suma=2+2 : " # La suma, my comment
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " // La suma
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " /* La suma */
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " ' Comment
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " Comment
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
for %%. in (H e l l o _ W o r l d) do (
call :show %%.
)
goto:eof
:show
<nul set /p "=%*" // Comentario
ping -n 1 loopback > nul
goto:eof
En realidad es sencillo, ya que el Set solo toma el primer parametro, lo siquiente es ignorado.
El truco ya aparece en el sitio de Rob Van Der Woude :
Citar
Leo Gutierrez Ramirez found a way to add any (language) style comments to SET /P commands:
@echo off
set /p "suma=2+2 : " # La suma, my comment
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " // La suma
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " /* La suma */
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " ' Comment
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
set /p "suma=2+2 : " Comment
if %suma% equ 4 (
echo.Bien
) else (
echo.Mal
)
set suma
@echo off
for %%. in (H e l l o _ W o r l d) do (
call :show %%.
)
goto:eof
:show
<nul set /p "=%*" // Comentario
ping -n 1 loopback > nul
goto:eof
As a matter of fact, any text after the closing doublequote is ignored.
Thanks Leo
http://www.robvanderwoude.com/clevertricks.php
Saludos.
solo sirve en set no ?
no lo puedo probar no estoy en win , pero es muy bueno
para cuando se tiene que explicar una linea
gracias Leo
saludos
Si, solo para el Set, tiene que haber más, solo hay que encontrarlos.
Nota: Para el parametro /a no sirve esto.
2>nul set /a "operacion=1000*2-500" se multiplica 1000 por 2 y se restan 500
echo.%operacion%
Tienes razon, tambien funciona para el parametro /a.
Crei haber visto algo como "Falta operador"
Gracias.
En realidad, me equivoqué, no se puede, porque al redirigir la salida de errores a nul se evita el mensaje de error, pero si en el "comentario" colocas un símbolo como + * / sin anteponer nada, por ejemplo +
dirás suma 0. por lo que igual se interpretan dichos carácteres.
Ejemplo:
@echo off
2>nul set /a "operacion=1000*2-500" +1 se multiplica 1000 por 2 y se restan 500
echo.%operacion%
pause
debería dar 1500, pero da 1501
y lo que tú dices puede utilizarse siempre que no se utilizen símbolos especiales
set "system=wintendo" /* & calc comentario */
esta no me la sabia. ;)
solo sabia en pause y cls
echo hola
cls comentario
set "a=adios" comentario
echo %a%
pause cometario