如何在DOS中进行字符串比较条件?

时间:2010-09-14 23:20:29

标签: windows command-line dos

哇,从没想过我会在DOS上写任何东西。现在我做了,我知道为什么我从来没想过。语法很荒谬!

无论如何我需要帮助。 我想提示用户输入,如果收到空行,我想使用默认值,如下所示:

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%

我收到错误消息“此时设置是意料之外的。”

你能帮帮忙吗?

3 个答案:

答案 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