에코가 꺼지지 만 메시지가 표시됨
박쥐 파일에서 에코를 해제했습니다.
@echo off
그런 다음 이렇게합니다
...
echo %INSTALL_PATH%
if exist %INSTALL_PATH%(
echo 222
...
)
그리고 나는 얻는다 :
시스템이 지정된 경로를 찾을 수 없습니다.
그 두 에코 사이의 메시지.
이 메시지의 이유는 무엇이며 메시지가 에코 오프를 무시하는 이유는 무엇입니까?
로 마이크 Nakis는 말했다, echo off
단지 명령의 인쇄를 방지, 결과 없습니다. 명령의 결과를 숨기려면 >nul
줄 끝에 추가 하고 오류를 숨기려면 2>nul
. 예를 들면 :
Del /Q *.tmp >nul 2>nul
마찬가지로 크리스 앤더슨은 오류가 발생하는 이유는 당신의 변수가 공백으로 확대하고, 말했다 :
set INSTALL_PATH=C:\My App\Installer
if exist %INSTALL_PATH% (
된다 :
if exist C:\My App\Installer (
이는 다음을 의미합니다.
"C : \ My"가 있으면 "("를 명령 줄 인수로 사용하여 "App \ Installer"를 실행합니다.
"App"이라는 폴더가 없기 때문에 오류가 표시됩니다. 이러한 분할을 방지하려면 경로를 따옴표로 묶으십시오.
이것을 * .bat 파일로 저장하고 차이점을 확인하십시오.
:: print echo command and its output
echo 1
:: does not print echo command just its output
@echo 2
:: print dir command but not its output
dir > null
:: does not print dir command nor its output
@dir c:\ > null
:: does not print echo (and all other commands) but print its 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
"echo off"는 무시되지 않습니다. "echo off"는 명령이 에코되는 것을 원하지 않음을 의미하며 명령에 의해 생성 된 오류에 대해 아무 것도 말하지 않습니다.
보여 주신 대사는 괜찮아 보이므로 문제가 없을 것입니다. 그러니 더 많은 대사를 보여주세요. 또한 INSTALL_PATH의 정확한 값을 보여주세요.
@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;
)
나 에게이 문제는 파일 인코딩 형식이 잘못되어 발생했습니다. 다른 편집기를 사용했는데 UTF-8-BOM
내가 가진 첫 줄 이 그대로 저장 @echo off
되었지만 그 앞에 숨겨진 캐릭터가 있습니다.
그래서 인코딩을 평범한 오래된 ANSI
텍스트 로 변경 한 다음 문제가 해결되었습니다.
참고URL : https://stackoverflow.com/questions/8823643/echo-off-but-messages-are-displayed
'developer tip' 카테고리의 다른 글
Ant를 사용하여 Android 샘플 프로젝트를 빌드하는 방법은 무엇입니까? (0) | 2020.11.08 |
---|---|
JavaScript의 if 문에 여러 조건을 지정하는 방법 (0) | 2020.11.07 |
키 입력으로 while 루프를 죽이는 방법? (0) | 2020.11.07 |
git diff를 stdout에 쓰는 방법은 무엇입니까? (0) | 2020.11.07 |
IntelliJ IDEA가 하위 패키지를 포함하여 패키지의 모든 테스트를 실행하도록하려면 어떻게해야합니까? (0) | 2020.11.07 |