[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理IF怎样判断多个条件的时间值?

本帖最后由 bobgjs 于 2011-5-16 14:06 编辑

我想让IF判断多个时间值,按不同的时间执行相应的操作,我测试无效,请求帮助。
初学者,请勿见笑。
  1. @echo off
  2. :IF
  3. echo.
  4. echo.
  5. echo      %time:~0,5%
  6. if %time:~0,5% EQU "11:30" goto :tas
  7. if %time:~0,5% EQU "13:32" goto :tas
  8. if %time:~0,5% EQU "15:34" goto :tas
  9. if %time:~0,5% EQU "16:36" goto :tas
  10. if %time:~0,5% EQU "20:38" goto :shut
  11. ping 127.1 -n 10 >nul
  12. cls
  13. goto :IF
  14. :tas
  15. taskkill /f /im QQ.exe
  16. ping 127.1 -n 10 >nul
  17. start F:\QQ\Bin\QQ.exe
  18. goto :IF
  19. :shut
  20. echo "shutdown -r -f -t 0"
复制代码
我改了,仍然不行,请求赐教啊。。。。。。。。
我这样写是对的吗?

6# bobgjs


for %%a in (0 2 4 6) do set ""#11:3%%a"=="
set ""$11:38"=="
改为:
for %%a in (08 12 16 20) do set ""#%%a:00"=="
set ""$21:00"=="
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

3# wolonga123


大部分命令的选项对位置没有要求
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

5# hanyeguxing

如果时间8:00  12:00 16:00 20:00 。。。。
我怎么改你的代码?

TOP

  1. @echo off
  2. for %%a in (0 2 4 6) do set ""#11:3%%a"=="
  3. set ""$11:38"=="
  4. start F:\工作\EasyBoot\Tencent\QQ\Bin\QQ.exe
  5. :IF
  6. cls&echo;&echo;     %time:~0,5%
  7. if defined "$%time:~0,5%" shutdown -r -f -t 0
  8. if defined "#%time:~0,5%" (
  9. taskkill /f /im QQ.exe
  10. ping 127.1 -n 10 >nul
  11. start F:\工作\EasyBoot\Tencent\QQ\Bin\QQ.exe
  12. goto:IF
  13. )
  14. ping 127.1 -n 10 >nul
  15. goto:IF
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

楼上,测试过就知道,无区别的……

TOP

taskkill /f /im QQ.exe这句好像是taskkill  /im QQ.exe /f

TOP

if %time:~0,3% EQU 11:30 goto :tas

永远不会执行:
1,11:30是5个字符,%time:~0,3%是3个字符,怎么可能相等呢
2,%time:~0,3%中第一个字符可能为空格,所以被比较双方都要加引号
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表