如果大于批处理文件

50

我编写了一个简单的批处理文件,根据数字选择运行常用网站。 这是我的代码。 我试图将其设置为,如果有人输入6或更高的数字,它将转到:N,但每当我输入6时,批处理文件就会退出。 我尝试过if %input% > 6 goto :N,但它只告诉我要去谷歌。

@echo off
:Start2 
cls
goto Start
:Start
title Frequently Used Websites
echo Please select a website from the list
echo with the corresponding key
echo --------------------------------------
echo [1] Google
echo [2] Wikipedia
echo [3] Facebook
echo [4] Youtube
echo [5] Yahoo
set input=
set /p input= Choice:
if %input%==1 goto Z if NOT goto Start2
if %input%==2 goto X if NOT goto Start2
if %input%==3 goto C if NOT goto Start2
if %input%==4 goto V if NOT goto Start2
if %input%==5 goto B if NOT goto Start2
if %input%>=6 goto N

:Z
cls
echo You have selected Google
pause
start www.google.com
exit
:X
cls
echo You have selected Wikipedia
pause
start www.wikipedia.com
exit
:C
cls
echo You have selected Facebook
pause
start www.facebook.com
exit
:V
cls
echo You have selected Youtube
pause
start www.youtube.com
exit
:B
cls
echo You have selected Yahoo
pause
start www.Yahoo.com
exit
:N
cls
echo Invalid Selection! Try again
pause
goto :start2

2
由于唯一的时间它会出现在行 if %input%>=6 goto N 上是当它大于等于6时,你可以直接去掉if,写成 goto N - Kitsune
3
尝试使用 if /? 命令,它会为您提供帮助。 - jeb
4个回答

119

试试这个:

if 3 gtr 2 @echo "biggger"

这会输出:

"biggger"

图片描述

其他运算符有:

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于等于
GTR - 大于
GEQ - 大于等于

参考资料


9
    if %var% geq 1

是最简单的方法


10
两岁的问题有一个很好的被接受的答案。尝试提供一个真正增加新内容的答案,内容更丰富。 - manuell
1
实际上,这个答案有点不同。被接受的答案比较了两个常量。这个答案至少展示了变量的使用。对于那些无法区分 var%var% 的人来说,这是有区别的。 - MelBurslan

1
实际上,您甚至不需要更多的功能。您所需要做的就是添加。
goto homepagename

如果所有的if语句都没有执行goto命令,那么程序将会跳转到那里。
例如,这样修复你的代码:
@echo off
:Start2 
cls
goto Start
:Start
title Frequently Used Websites
echo Please select a website from the list
echo with the corresponding key
echo --------------------------------------
echo [1] Google
echo [2] Wikipedia
echo [3] Facebook
echo [4] Youtube
echo [5] Yahoo
set input=
set /p input= Choice:
if %input%==1 goto Z if NOT goto Start2
if %input%==2 goto X if NOT goto Start2
if %input%==3 goto C if NOT goto Start2
if %input%==4 goto V if NOT goto Start2
if %input%==5 goto B if NOT goto Start2
if %input%>=6 goto N
goto Start

0

你可以写成这样(更简单)

@echo off

:Start2
cls
goto Start

:Start
title Frequently Used Websites
echo Please select a website from the list
echo with the corresponding key
echo --------------------------------------
echo [1] Google
echo [2] Wikipedia
echo [3] Facebook
echo [4] Youtube
echo [5] Yahoo

set /p input= Choice: 

if %input%==1 goto Z
if %input%==2 goto X
if %input%==3 goto C
if %input%==4 goto V
if %input%==5 goto B
echo Invalid selection!
echo.
echo Press any key to go back!
pause >nul
cls
goto start2

:Z
cls
echo You have selected Google
pause
start www.google.com
exit

:X
cls
echo You have selected Wikipedia
pause
start www.wikipedia.com
exit

:C
cls
echo You have selected Facebook
pause
start www.facebook.com
exit

:V
cls
echo You have selected Youtube
pause
start www.youtube.com
exit

:B
cls
echo You have selected Yahoo
pause
start www.Yahoo.com
exit

:N
cls
echo Invalid Selection! Try again
pause
goto start2

@TLama,据我所知,这个链接是他的回答,似乎出现了新的换行符,可能我的建议应该被拒绝。无论如何,这个答案需要格式化。如果它是一条单行语句,它应该是一行,而不是一个大段落。 - matth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接