what sintaxis off means lenguaje batch bat batch-file cmd echo

batch file - sintaxis - Echo off pero se muestran mensajes



sintaxis echo cmd (5)

"echo off" no se ignora. "echo off" significa que no desea que los comandos se repitan, no dice nada sobre los errores producidos por los comandos.

Las líneas que nos mostró se ven bien, por lo que el problema probablemente no esté allí. Por lo tanto, muéstranos más líneas. Además, muéstranos el valor exacto de INSTALL_PATH.

Apagué el eco en el archivo del murciélago.

@echo off

entonces hago algo como esto

... echo %INSTALL_PATH% if exist %INSTALL_PATH%( echo 222 ... )

y obtengo:

El sistema no puede encontrar la ruta especificada.

mensaje entre esos dos ecos.

¿Cuál puede ser el motivo de este mensaje y por qué el mensaje ignora el eco?


Como dijo Mike Nakis , el echo off solo evita la impresión de comandos, no los resultados. Para ocultar el resultado de un comando, agregue >nul al final de la línea, y para ocultar los errores, agregue 2>nul . Por ejemplo:

Del /Q *.tmp >nul 2>nul

Como dijo Krister Andersson , la razón por la que obtienes un error es que tu variable se está expandiendo con espacios:

set INSTALL_PATH=C:/My App/Installer if exist %INSTALL_PATH% (

Se convierte en:

if exist C:/My App/Installer (

Lo que significa:

Si existe "C: / My", ejecute "App / Installer" con "(" como el argumento de la línea de comando.

Usted ve el error porque no tiene una carpeta llamada "Aplicación". Ponga comillas alrededor de la ruta para evitar esta división.


Guarde esto como un archivo * .bat y vea las diferencias

:: print echo command and it''s output echo 1 :: does not print echo command just it''s output @echo 2 :: print dir command but not it''s output dir > null :: does not print dir command nor it''s output @dir c:/ > null :: does not print echo (and all other commands) but print it''s output @echo off echo 3 @echo on REM this comment will appear in console if echo off was not set @set /p pressedKey=Press any key to exit


Para mí, este problema fue causado porque el formato de codificación del archivo era incorrecto. Utilicé otro editor y se guardó como UTF-8-BOM así que la primera línea que tuve fue @echo off pero había un personaje oculto en el frente.

Así que cambié la codificación al viejo texto ANSI , y luego el problema desapareció.


@echo off // quote the path or else it won''t work if there are spaces in the path SET INSTALL_PATH="c://etc etc//test"; if exist %INSTALL_PATH% ( // echo 222; )