2017-05-04 177 views
0

執行批處理文件會導致ECHO處於關閉狀態。執行批處理文件時ECHO關閉錯誤

批處理文件代碼如下存在:

@echo off 
setlocal EnableDelayedExpansion 

SET a = Hello 
SET b = World 
SET /A d = 50 
SET c = %a% and %b% %d% 
echo %c% 

endlocal 
pause 
+0

試試'echo。%c%'。 – Brandin

+5

等號右側的空格包含在變量的值中,但是等號左側的空格包含在變量名稱中。你沒有'a','b'和'c'變量,你有'a','b'和'c'變量(有額外的空間) –

+0

MC ND CA你可以幫我解決這個問題@回聲關閉 SETLOCAL EnableDelayedExpansion 集pathToJava = **提供您的響應: IF/I 「%pathToJava%」 == 「Y」( \t @echo發現 ) ENDLOCAL 暫停 –

回答

0

由於MC ND寫道,你有前後等號後面擺脫空間。它應該是SET a=Hello而不是SET a = Hello等等。此代碼按預期工作:

@echo off 
setlocal EnableDelayedExpansion 

SET a=Hello 
SET b=World 
SET /A d=50 
SET c=%a% and %b% %d% 
echo %c% 

endlocal 
pause 

此外,該行setlocal EnableDelayedExpansionendlocal是在你的代碼沒用,因爲你永遠不使用延遲擴展(例如的替代!a!%a%)。您的代碼仍然正確,因爲不需要延遲擴展。

如果您還有其他問題,請將它們發佈。不要在其他問題上展開這篇文章。

0

這裏是你的兩個,改變代碼:

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 

SET "a=Hello" 
SET "b=World" 
SET/A "d=50" 
SET "c=%a% and %b% %d%" 
ECHO %c% 

ENDLOCAL 
PAUSE 

請檢查和試戴,然後在各個命令讀了從你的錯誤中學習。

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET/P "pathToJava= **Provide your Response: " 
IF /I "%pathToJava%"=="Y" ECHO found 
ENDLOCAL 
PAUSE