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

[系统相关] [已解决]根据冬天、夏天作息时间,自动关机。为啥只有17:28到17:29无法关机??

[复制链接]
 楼主| 发表于 2015-10-18 12:42:46 | 显示全部楼层

批处理判断月份。现在是10月份,geq表示大于等于,为啥没有跳转呢?

批处理判断月份。现在是10月份,geq表示大于等于,为啥没有跳转呢?
  1. @echo off
  2. set "t=%time: =0%"
  3. if "%t:~,5%" geq "11:27" if "%t:~,5%" leq "11:29" goto :first11
  4. if "%t:~,5%" geq "21:50" if "%t:~,5%" leq "21:55" goto :first11


  5. set "tim=%date:~5,2%"

  6. echo %tim%

  7. if %tim% geq "10" if %tim% leq "12" goto :firstd

  8. echo 0000
  9. pause
  10. exit


  11. :firstd
  12. echo 10000
  13. pause
  14. exit
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2015-10-18 12:59:19 | 显示全部楼层
顶下。。。。。
发表于 2015-10-18 13:18:10 | 显示全部楼层
回复 17# ygqiang
去掉引号
发表于 2015-10-18 13:48:23 | 显示全部楼层
楼上的意思是这样:
  1. if %tim% geq 10
复制代码
  1. if "%tim%" geq "10"
复制代码
 楼主| 发表于 2015-10-18 17:23:13 | 显示全部楼层
本帖最后由 ygqiang 于 2015-10-18 17:24 编辑

回复 19# CrLf


    回复 18# terse

这个代码,应该没问题了吧?谢谢
  1. :firsta

  2. —————————————————————————
  3. set "tim=%date:~5,2%"
  4. if %tim% geq 01 if %tim% leq 04 goto :firstd
  5. if %tim% geq 10 if %tim% leq 12 goto :firstd

  6. if %tim% geq 05 if %tim% leq 09 goto :firstx
  7. —————————————————————————

  8. goto :firstx

  9. —————————————————————————
  10. :firstd
  11. if "%t:~,5%" geq "17:28" if "%t:~,5%" leq "17:29" goto :first11
  12. goto :firstn

  13. :firstx
  14. if "%t:~,5%" geq "17:58" if "%t:~,5%" leq "17:59" goto :first11

  15. —————————————————————————

  16. :firstn
  17. ping 127.0.0.1 -n 40 >nul 2>nul

  18. goto :firsta



  19. ———————————————————————
  20. :first11
  21. ping 127.0.0.1 -n 5 >nul 2>nul
  22. shutdown.exe -s -t 3
复制代码
发表于 2015-10-18 18:25:58 | 显示全部楼层
回复 20# ygqiang


    设置date time变量为有疑问的时间点,并将代码中的shutdown加上echo,运行后能显示shutdown命令就对了
发表于 2015-10-18 18:28:21 | 显示全部楼层
回复 15# ygqiang
代码是否直观与应用是两种问题,代码在直观错误执行后要直观有什么作用?
写代码完全取决于作者的个人习惯;
你的IF判断是利用了判断字符串的大小进行对比的,而我用的是判断数字进行对比的,两者对比结果数字更有优越性,本来想分开写的考虑到你的代码是每行执行特意合并成了一行
发表于 2015-10-18 18:42:23 | 显示全部楼层
回复 13# CrLf


    不同系统带的schtasks 版本不一样,支持的功能也不完全一样。
发表于 2015-10-18 19:12:03 | 显示全部楼层
本帖最后由 CrLf 于 2015-10-18 19:13 编辑

回复 23# 依山居


    问题是我印象中 32 位 win7 里的 schtasks 好像还没这个功能,64 位 win7 却有,本以为两个版本的系统应该只有位数上的区别…不知道是后来更新了还是我记错了
发表于 2015-10-19 02:01:32 | 显示全部楼层
回复 20# ygqiang
看你开头部分 0开头的数字比较也不是很牢靠哦
 楼主| 发表于 2015-10-19 19:45:14 | 显示全部楼层
回复  ygqiang
看你开头部分 0开头的数字比较也不是很牢靠哦
terse 发表于 2015-10-19 02:01
  1. set "tim=%date:~5,2%"
  2. if %tim% geq 01 if %tim% leq 04 goto :firstd
  3. if %tim% geq 10 if %tim% leq 12 goto :firstd

  4. if %tim% geq 05 if %tim% leq 09 goto :firstx
复制代码
xp系统下。特意测试过了。。这个代码好用。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:20 , Processed in 0.019689 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表