无论如何我需要帮助。 我想提示用户输入,如果收到空行,我想使用默认值,如下所示:
set name=abraham.
set /p input=please enter your name, press enter to use %name%:
if not %input%=="" set name=%input%
echo your name is %name%
我收到错误消息“此时设置是意料之外的。”
你能帮帮忙吗?
答案 0 :(得分:8)
尝试
set name=abraham
set /p name=please enter your name, press enter to use %name%:
echo entered : %name%
请注意,在cmd文件中,如果未输入任何内容,则不会更改var。
或者,使用if:
set name=abraham
set input=
set /p input=please enter your name, press enter to use %name%:
if "%input%" NEQ "" set name=%input%
echo entered : %name%
注意if语句中输入的引号,并注意我在运行之前清除了输入(如果用户没有输入任何内容,它将保留最后一个值)
答案 1 :(得分:2)
空字符串在shell编程中实际上是空的,因此请尝试if "%input%"=="" set...
(带引号)或if %input%== set...
(空字符串为空)。
答案 2 :(得分:1)
我认为你需要在变量周围添加单引号(不确定是双重还是单项):
@echo off
set name=abraham.
set /p input=please enter your name, press enter to use %name%:
if not '%input%'=='' set name=%input%
echo your name is %name%
pause