2017-08-16 55 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 

该组织的代码位。我添加了暂停命令,以便您可以看到它在做什么。当测试这个时,我没有得到“回声消失”的错误。请让我知道它是否有效!