批处理命令 多条件判断后 显示出来结果

一个bat文档里,前面已经编写了一部分,是一段关于简单运算的计算器
因为想要重复使用计算,前部分用了一个循环标记
@echo off
:标记1
##前部分代码##
goto 标记1
pause

前部分运行正常,结果计算显示出4个参数 n1,n2,n3,n4
后部分我想实现
条件1:n1<3 ,
条件2:n1>=3 ,
条件3:n2>=n3,
条件4:n2>=n4
条件5:n3>n2
条件6:n4>n2

满足条件1 输出显示一句话a
共同满足条件2&&条件3 输出显示一句话b
共同满足条件2&&条件4&&条件5 输出显示一句话c
共同满足条件2&&条件6 输出显示一句话d
要求最终只显示abcd其中一个结果:
我使用了类似
@echo off
:标记1
##代码前半段##
if %n1% LSS 3 goto:标记2
:标记2
echo 结果a
echo.
goto :eof
if %n1% GEQ 3 && %n3% GEQ %n1% && %n1% LSS %n4% goto:标记4
:标记4
echo 结果c
echo.
goto :eof

goto 标记1
pause

这样的语句 结果文档就自动关闭了 希望高人解答

先提三点值得注意:

if %n1% LSS 3 goto:标记2
:标记2
这种,前句的判断没意义,因为无论判断是否满足都会顺序执行

&&是命令连接符,要求其前后都是完整合格的命令,前命令成功时连续执行后命令所以
if %n1% GEQ 3 && %n3% GEQ %n1% && %n1% LSS %n4% goto:标记4
是不合格的命令

注意到用到goto :eof
那么批处理就算结束了,那么之前就算写得正确也退出了,因此之前显示的内容会来不及看,除非之前没什么要显示的,要注意凡显示内容就要考虑是否留有看的时间,另外,逻辑上是否冲突或不妥没仔细看,列的几判断全都goto :eof了, 最后的goto 标记1是否还有意义我不作结论

写个部分的参考代码,没仔细琢磨,有几对条件是相反的1~2、3~5、4~6,琢磨得好就写得简单点
if %n1% lss 3 (echo 结果 a)else (
if %n2% gtr %n3% echo 结果 b&goto :next
if %n2% geq %n4% if %n3% gtr %n2% echo 结果 c
if %n4% gtr %n2% echo 结果 d)
:next
set/p ag=继续 ? (按y继续,其它退出) :
if /i "%ag%"=="y" goto 标记1
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-18
你得把前面的代码贴出来才行
前面的代码都不知道,如何编后面的?

cmd 批处理的if命令,能不能判断多个条件?
cmd 批处理的if命令,能判断多个条件,判断方法为:1、右键打开右键菜单,新建一个文本文档。2、把文本文档的.txt后缀改成.cmd或者.bat。比如把“新建文本文档.txt”改成“test.bat”。3、在弹出的对话框中点击确定。4、右键点击test.bat,在弹出的菜单中点击编辑。5、然后输入如下命令即可。

你好,批处理find可以多条件吗
find 可以通过多个|组合来联合查新条件 比如输入,find "张三" c:\\测试\\*.txt |find "13800138000"|find "abc@123.com"就能查找所有c:\\测试下的txt文件,并显示其中含有13800138000和abc@123.com的内容。

批处理多条件判断,满足其中一个执行命令,怎么做?
FOR %%i in (10.10.230.*;10.10.152.*;10.10.155.*) do if %ip%==%%i goto Lable21 FOR %%i in (10.10.181.*;10.10.180.*) do if %ip%==%%i goto Label22 :Lable20 echo 这里是Label20,可以用:XXX 定义一个跳转位置 goto End :Label21 echo 这里是Label21,然后就可以用...

批处理程序中的if命令是什么?
例如,若要检查一个文件是否存在,可以使用以下批处理命令:if exist "文件路径" "复制文件" "跳过文件"。在此例中,"exist"函数用于判断指定路径的文件是否存在。如果文件存在(即返回非零值),则执行"复制文件"命令;如果文件不存在(返回零值),则执行"跳过文件"命令。通过巧妙地利用If命令,批处理...

如何在批处理命令行中进行逻辑运算? 比如我要判断一个变量a的值,如果...
5. CALL 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。6. PAUSE 停止系统命令的执行并显示下面的内容。7. IF 条件判断语句,语法格式如下:IF [NOT] ERRORLEVEL number command、IF [NOT] string1==string2 command、IF [NOT] EXIST filename ...

Windows 批处理(九)for 和 获取指令输出内容
例如:for %%i in ("%*") do (echo Argument: %%i )这段代码获取所有命令行参数,并为每个参数执行回车后显示其值。总之,批处理语言中的for 循环是实现自动化任务和处理文本集合的强大工具。通过结合非拓展和拓展模式,你可以灵活地处理文件、目录和其他数据,显著提高工作效率。

什么是批处理 批处理命令大全介绍【详解】-搜狗输入法
2.@ 命令 表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite... @format X: \/q\/u\/autoset (format 这个命令是不可以使用\/y这个参数的,可喜的是微软留了个autoset这个参...

批处理IF 需要判断2个条件如何写?
条件代码如下: @echo off & setlocal enabledelayedexpansion title 删除不匹配文件 for \/f "delims=" %%a in ('dir \/b \/a-d *.lrc') do ( if not exist "%%~na.amr" ( if not exist "%%~na.mp3" ( if not exist "%%~na.wma" ( del \/q "%%a" ) ) ) ) goto :eof 批处理(Batch),也...

求批处理 能全盘搜索多个后缀名(例:.txt、.exe、.pdf)并显示符合条件所 ...
把所有后缀名都写入ext.txt,然后把下面的批处理存为search_ext.bat,双击运行后会显示结果,存入result.txt并打开。for \/f "delims=" %%i in (ext.txt) do (echo ---%%i--- dir c: \/s \/b>>result.txt )type result.txt pause¬epad result.txt&exit ...

如何在批处理命令行中进行逻辑运算? 比如我要判断一个变量a的值,如果...
ECHO "1和2的内容全部显示完成"执行C:\\>1.BAT,显示结果:这是1的内容这就是2的内容1和2的内容全部显示完成5、PAUSEPAUSE 停止系统命令的执行并显示下面的内容。例:C:\\> PAUSE请按任意键继续 . . .6、 IFIF 条件判断语句,语法格式如下:IF [NOT] ERRORLEVEL number commandIF [NOT] string1==string2 ...

相似回答