方案
我希望如果用户输入一个值,我会得到主机名,如果用户没有输入任何值,那么我只是回显默认路径。
问题陈述
在if中添加这些条件后,如果用户输入值,则 echo is off 。
我该如何解决这个问题?
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%)
答案 0 :(得分: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
这会稍微组织一下代码。我添加了暂停命令,以便您可以看到它正在做什么。测试时,我没有收到“echo is off”错误。请告诉我它是否有效!