我關閉了bat文件中的回聲。回聲消息但顯示消息
@echo off
然後我做這樣的事情
...
echo %INSTALL_PATH%
if exist %INSTALL_PATH%(
echo 222
...
)
,我也得到:
該系統找不到指定的路徑。
這兩個回聲之間的消息。
此消息的原因是什麼以及消息忽略回顯的原因是什麼?
我關閉了bat文件中的回聲。回聲消息但顯示消息
@echo off
然後我做這樣的事情
...
echo %INSTALL_PATH%
if exist %INSTALL_PATH%(
echo 222
...
)
,我也得到:
該系統找不到指定的路徑。
這兩個回聲之間的消息。
此消息的原因是什麼以及消息忽略回顯的原因是什麼?
正如Mike Nakis說,僅echo off
防止命令,而不是結果的打印。要隱藏命令的結果,請將>nul
添加到該行的末尾,並隱藏錯誤添加2>nul
。例如:
Del /Q *.tmp >nul 2>nul
像Krister Andersson說,你會得到一個錯誤的原因是你的變量是擴大與空間:
set INSTALL_PATH=C:\My App\Installer
if exist %INSTALL_PATH% (
變爲:
if exist C:\My App\Installer (
這意味着:
如果存在「C:\ My」,請運行「App \ Install呃「與」(「作爲命令行參數。
由於沒有名爲「App」的文件夾,您會看到該錯誤。在路徑上加上引號以防止這種分裂。
我引用了%INSTALL_PATH%。該消息消失了,但我得到了新的錯誤。「(此時意外。」我會問另一個問題。謝謝! – 2012-01-12 09:12:24
「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;
)
之前添加一個空格。您還可以在變量周圍加上引號:'IF EXIST「%INSTALL_PATH%」'。 – aphoria 2012-01-11 17:48:09
@aphoria - Jupp, – Cyclonecode 2012-01-11 17:54:39
我只提到它,因爲有時你需要追加到變量中,並將引號作爲值的一部分使得更加困難 – aphoria 2012-01-11 18:56:26
保存爲* .bat文件,看看差別
:: 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
I 'm不知道你試圖完成什麼,因爲這個問題已經接受了答案... – 2016-05-27 20:24:29
沒什麼,只是另一個答案。也許它會比接受答案更清楚對某人。 – 2016-05-27 20:26:23
我希望它會:) – 2016-05-28 11:45:01
對我來說,這個問題是由文件的編碼格式是錯誤引起的。 我用另一個編輯器,它被保存爲UTF-8-BOM
,所以我的第一行是@echo off
,但在它的前面有一個隱藏的字符。
因此,我將編碼更改爲普通舊ANSI
文本,然後問題就消失了。
如果路徑中有空格,是否有引號?如果不存在「%INSTALL_PATH%」(...' – 2012-01-11 17:23:25
即使將回顯設置爲off,「@echo off」也會顯示警告,這意味着沒有命令應回顯給終端。 – Cyclonecode 2012-01-11 17:29:23
除了在路徑中添加引號之外,還可以在( – dbenham 2012-01-11 17:50:52