如何在DOS中做string比较条件?

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

反正我需要帮助。 我想提示用户input,如果收到一个空行,我想使用默认值,如下所示:

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% 

我收到一个错误,说“此时此刻是意外的”。

你能帮忙吗?

尝试

 set name=abraham set /p name=please enter your name, press enter to use %name%: echo entered : %name% 

请注意,在cmd文件中,如果没有输入,var不会更改。

或者,如果:

 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语句中输入的引号,并注意在运行之前清除输入(或者如果用户没有输入任何内容,它将保留最后的值)

在shell编程中,空字符串实际上是空的,所以试试if "%input%"=="" set... (带引号)或者if %input%== set... (空字符串为空)。

我相信你需要把单引号(不知道如果双重或单一的事情)围绕变量:

 @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