Board logo

标题: [日期时间] [分享]批处理在指定日期或时间触发弹窗提醒的时钟 [打印本页]

作者: impk    时间: 2019-7-29 11:30     标题: [分享]批处理带提醒功能的时钟 --完成版在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
复制代码
这么写对么?
作者: Batcher    时间: 2019-7-29 14:19

你测试的时候遇到什么问题了吗?
作者: impk    时间: 2019-7-29 14:32

你测试的时候遇到什么问题了吗?
Batcher 发表于 2019-7-29 14:19



    我测试时,当%time%到达%触发1%指定时间时,并没有跳转到note
作者: impk    时间: 2019-7-29 15:07

本帖最后由 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
复制代码

作者: 1801403    时间: 2019-7-29 20:16

都是大神...学习了.
作者: impk    时间: 2019-7-30 19:07

能触发弹窗提醒的时钟
  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
复制代码

作者: impk    时间: 2019-7-30 19:25     标题: [分享]批处理在指定日期或时间触发弹窗提醒的时钟

本帖最后由 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
复制代码

作者: impk    时间: 2019-7-30 21:04

  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
作者: Batcher    时间: 2019-7-30 21:12

回复 1# impk


第10行不一定能够获取到正确的日期,参考:
http://bbs.bathome.net/thread-3328-1-1.html
作者: impk    时间: 2019-7-30 21:34

回复 3# Batcher


    教程里最简单几种BAT + REG,现在也看不懂,留到以后再看




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2