2017-08-16 47 views
0

方案回聲是關閉Windows批處理錯誤

我想,如果用戶輸入一個值,我得到的主機名和用戶如果不輸入任何值,然後我就回聲默認路徑。

問題陳述

中的if else我得到回聲添加這些條件後熄滅,如果用戶輸入一個值。

我該如何解決這個問題?

SET /P USER_INSTALL= Installation Path : 
@echo: 
if "%USER_INSTALL%"=="" (echo "------Default path------") else (
ECHO %USER_INSTALL% 
FOR /F "usebackq" %%i IN (`hostname`) DO SET HOST=%%i 
ECHO %HOST%) 
+1

更改'SET/P USER_INSTALL =安裝路徑:'到'SET/P「USER_INSTALL =安裝路徑:」'請在equsl符號周圍不要留空格。也不要使用'echo:'來回顯空白行,使用'echo /'或'echo('。 – elzooilogico

+2

[Windows批處理變量不會設置]的可能重複(https://stackoverflow.com/questions/9681863/windows-batch-variables-wont-set) – SomethingDark

+1

此外,它是批處理,而不是bash – SomethingDark

回答

1

我不知道我完全理解你正在嘗試做的,但試試這個:

@echo off 
SET /P USER_INSTALL=Installation Path : 
if "%USER_INSTALL%"=="" goto IP1 
goto :IP2 

:IP1 
echo "------Default path------" 
PAUSE 
exit 

:IP2 
ECHO %USER_INSTALL% 
FOR /F "usebackq" %%i IN (`hostname`) DO SET HOST=%%i 
ECHO %HOST% 
PAUSE 
exit 

該組織的代碼位。我添加了暫停命令,以便您可以看到它在做什麼。當測試這個時,我沒有得到「回聲消失」的錯誤。請讓我知道它是否有效!