一个批处理问题,在满足if语句的条件时,不能正确的执行if后的命令啊。求大家帮忙看看啊。

@echooffechokkkk>C:\wl.txtsetstr1=%time:~0,2%seta=23setb=5setc=11if%str1%GTR%a%(echoa... @echo off
echo kkkk>C:\wl.txt
set str1=%time:~0,2%
set a=23
set b=5
set c=11
if %str1% GTR %a%(echo aaa>>C:\wl.txt)||if %str1% LSS %b%(echo www>>C:\wl.txt)||if %str1% == %c%(echo ddd>>C:\wl.txt)
call C:\wl.txt
pause
展开
 我来答
biatxue
2012-07-07 · TA获得超过610个赞
知道小有建树答主
回答量:619
采纳率:0%
帮助的人:508万
展开全部
没有满足情况,你完全没必要加||这个吧让他们格式成为一行一行的来判断,
@echo off
echo kkkk>C:\wl.txt
set str1=%time:~0,2%
set a=23
set b=5
set c=11
if %str1% GTR %a% echo aaa>>C:\wl.txt
if %str1% LSS %b% echo www>>C:\wl.txt
if %str1% equ %c% echo ddd>>C:\wl.txt
call C:\wl.txt
pause
然后如果现在是20点那它现在上面的三个情况都不会满足
第一不大于23点第二不小于5点第三不等于11点所以他输出结果仍然是KKKK
understand?
追问
谢谢你。开始我也是这么写的,现在知道当时主要错在if语句后的命令我加了括号。可是不解为什么加了括号会出错。他提示echo后面的内容“......不是内部或外部命令”。
追答
改成这样if %str1% GTR %a% (echo aaa>>C:\wl.txt)||if %str1% LSS %b% (echo www>>C:\wl.txt)||if %str1% == %c%(echo ddd>>C:\wl.txt)

按你写的格式没空格运行过程给你写出来: if 21 gtr 23(echo aaa>>C:\wl.txt)这里你应该可以看出错误了吧,他判断的是如果21大于"23(echo则执行aaa>>c:\wl.txt)所以才会出现aaa不是内部或外部命令
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式