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

[日期时间] [分享]批处理在指定日期或时间触发弹窗提醒的时钟

[复制链接]
发表于 2019-7-30 19:25:15 | 显示全部楼层 |阅读模式
本帖最后由 impk 于 2019-8-3 15:56 编辑

这个是最终完成版
  1. @echo off
  2. color 2F
  3. mode con cols=50 lines=3

  4. set /p 触发1a=    设置触发日期:(格式如 2000-01-01)
  5. set /p 触发1b=    或设置触发时间:(格式如 08:30)
  6. set /p 备忘1=    输入提醒内容:

  7. :start
  8. set date1=%date:~0,10%
  9. set time1=%time:~0,5%
  10. set time1=%time1: =0%
  11. if "%触发1a%"=="%date1%" goto :弹窗1
  12. if "%触发1b%"=="%time1%" goto :弹窗1
  13. echo     %date% %time:~0,8% && ping /n 2 127.1>nul
  14. goto :start

  15. :弹窗1
  16. echo %备忘1% >提醒1.txt && start 提醒1.txt
  17. set 触发1a= & set 触发1b=
  18. goto :start
复制代码
 楼主| 发表于 2019-7-29 11:30:27 | 显示全部楼层

[分享]批处理带提醒功能的时钟 --完成版在7楼

本帖最后由 impk 于 2019-8-3 14:32 编辑
  1. @echo off
  2. color 2F
  3. mode con cols=50 lines=3

  4. set /p 触发1=    请输入触发时间:(12:00:00格式)
  5. set /p 备忘1=    请输入备忘内容:

  6. :start
  7. if "%time%"=="%触发1%" goto :note
  8. echo     %date% %time:~0,8% && ping /n 2 127.1>nul
  9. goto :start

  10. :note
  11. echo %备忘1%
  12. pause
  13. set 触发1=
  14. goto :start
复制代码
这么写对么?
发表于 2019-7-29 14:19:49 | 显示全部楼层
你测试的时候遇到什么问题了吗?
 楼主| 发表于 2019-7-29 14:32:33 | 显示全部楼层
你测试的时候遇到什么问题了吗?
Batcher 发表于 2019-7-29 14:19



    我测试时,当%time%到达%触发1%指定时间时,并没有跳转到note
 楼主| 发表于 2019-7-29 15:07:26 | 显示全部楼层
本帖最后由 impk 于 2019-7-29 15:13 编辑

找到原因了,要先把%time%时间函数转换成字符串
  1. @echo off
  2. color 2F
  3. mode con cols=50 lines=3

  4. set /p 触发1=    请输入触发时间:(格式如12:00)
  5. set /p 备忘1=    请输入备忘内容:

  6. :start
  7. if "%触发1%"=="%time1%" goto :note
  8. echo     %date% %time:~0,8% && ping /n 2 127.1>nul
  9. set time1=%time:~0,5%
  10. goto :start

  11. :note
  12. echo %备忘1%
  13. pause
  14. set 触发1=
  15. goto :start
复制代码
发表于 2019-7-29 20:16:28 | 显示全部楼层
都是大神...学习了.
 楼主| 发表于 2019-7-30 19:07:55 | 显示全部楼层
能触发弹窗提醒的时钟
  1. @echo off
  2. color 2F
  3. mode con cols=50 lines=3

  4. set /p 触发1=    请输入触发时间:(12:00格式)
  5. set /p 备忘1=    请输入备忘内容:

  6. :start
  7. if "%触发1%"=="%time1%" goto :note1
  8. echo     %date% %time:~0,8% && ping /n 2 127.1>nul
  9. set time1=%time:~0,5%
  10. goto :start

  11. :note1
  12. echo %备忘1% >提醒.txt && explorer 提醒.txt
  13. set 触发1=
  14. goto :start
复制代码
 楼主| 发表于 2019-7-30 21:04:52 | 显示全部楼层
  1. if "%触发1%"=="%date1%" (
  2. goto :弹窗1
  3. ) else if "%触发2%"=="%time1%" (
  4. goto :弹窗1
  5. ) else echo     %date% %time:~0,8% && ping /n 2 127.1>nul
复制代码
这里有没有必要用到 if else,可不可以简化成
if "%触发1%"=="%date1%" goto :弹窗1
if "%触发2%"=="%time1%" goto :弹窗1
echo     %date% %time:~0,8% && ping /n 2 127.1>nul
发表于 2019-7-30 21:12:02 | 显示全部楼层
回复 1# impk


第10行不一定能够获取到正确的日期,参考:
http://bbs.bathome.net/thread-3328-1-1.html
 楼主| 发表于 2019-7-30 21:34:24 | 显示全部楼层
回复 3# Batcher


    教程里最简单几种BAT + REG,现在也看不懂,留到以后再看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 06:15 , Processed in 0.074889 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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