一个批处理问题,在满足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 展开
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 展开
1个回答
展开全部
没有满足情况,你完全没必要加||这个吧让他们格式成为一行一行的来判断,
@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?
@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不是内部或外部命令
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询