批量文件在一行中的两个If语句

时间:2014-04-21 18:51:49

标签: batch-file if-statement

我正在制作一个需要有两个输入的批处理文件,如下所示:

echo What's the name of your two brothers
set/p input1=
set/p input2=

现在我想要的是这样的:

if %input1==anything and if %input2%==OtherThing goto Continue

但我不知道该怎么做。请帮助 Thnks。

4 个答案:

答案 0 :(得分:2)

if "%input1%" EQU  "anything" if "%input2%" EQU "OtherThing" goto :Continue

答案 1 :(得分:2)

if "%input1%/%input2%" == "anything/OtherThing" goto Continue

答案 2 :(得分:0)

试试这样:

@echo off
echo What's the name of your two brothers
set /p "input1=Brother 1 :"
set /p "input2=Brother 2 :"
if /i "%input1%"=="anything" (
   if /i "%input2%"=="OtherThing" goto Continue
   echo One brother matched
   pause
   exit/b)

echo No Brother Matched
pause
exit/b


:continue
echo Two Brother matched
pause

答案 3 :(得分:0)

如果您仅在第一个和第二个IF语句为真时尝试执行GOTO命令,请使用:

if %input1%==anything && if %input2%==OtherThing goto continue

&&告诉程序只有在前面的命令为真之后执行命令。

您还可以在程序中添加一些其他功能,例如忽略您输入兄弟的顺序。为此,请使用:

if %input1%==anything && if %input2%==OtherThing goto continue
if %input1%==OtherThing && if %input2%==anything goto continue
echo Your brothers do not match description etc...
pause
exit

你也可以使用不区分大小写的比较:

if /I %input1%==anything && if /I %input2%==OtherThing goto continue

还有很多其他的东西可以用来强化你的程序。如果您需要有关某个命令的更多帮助,请打开cmd.exe并使用/?键入命令。开关。

更新

抱歉,我的第一个答案没有用,但是我已经想出了一个新的.bat程序,它应该可以完成这项任务。如果此操作是程序的第一个操作,请在程序的最开头复制并粘贴此代码:

@echo off
echo Enter the name of your first brother.
set /P input1=
cls
echo Enter the name of your second brother.
set /P input2=
if %input1%==anything goto %input1%
if not %input1%==OtherThing goto checkinput2
goto %input1%
:anything
if %input2%==OtherThing (goto continue) else cls & echo Only one brother matched. & echo. & pause & exit /b
:OtherThing
if %input2%==anything (goto continue) else cls & echo Only one brother matched. & echo. & pause & exit /b
:checkinput2
if %input2%==OtherThing cls & echo Only one brother matched. & echo. & pause & exit /b
if %input2%==anything cls & echo Only one brother matched. & echo. & pause & exit /b
cls
echo No brothers matched.
echo.
pause
exit /b
:continue
"the rest of your program here"

无论你在哪里看到"任何东西"用一个兄弟的名字替换它。无论你在哪里看到" OtherThing"用另一个兄弟的名字替换它。名称将是区分大小写的。你看到"你的程序的其余部分",那是你的:continue声明。只需从这一行继续你的程序。

如果此操作位于程序中间的某个位置,请将第一行@echo off替换为cls,以清除其他程序命令中屏幕上的内容。

我希望这适合你。