第二天的Windows批处理事件提醒
如何编写批处理脚本,该脚本将搜索此格式的Dates.txt文件:
EventName1:dd.mm.yyyy EventName2:dd.mm.yyyy … EventNameN:dd.mm.yyyy 对于明天日期的活动,如果找到,请通知用户他们? 我能够为今天的活动编写一个脚本: @echo off setlocal disableDelayedExpansion IF NOT EXIST Dates.txt GOTO not_found_dates for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j set ldt=%ldt:~6,2%.%ldt:~4,2%.%ldt:~0,4% echo Today: %ldt% for /f "tokens=1,2 delims=:" %%A in (Dates.txt) do ( if "%%B"==" %ldt%" echo You have %%Atoday! ) GOTO:EOF :not_found_dates echo Dates.txt not found! GOTO:EOF 但我无法弄清楚如何找到明天的日期来将其与文件中的日期进行比较. 一些帮助将不胜感激!
好吧,我终于想到了自己!
@echo off setlocal DisableDelayedExpansion if not exist Dates.txt goto not_found_dates for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j set d=%ldt:~6,2% set m=%ldt:~4,2% set y=%ldt:~0,4% set ldt=%d%.%m%.%y% echo ************************ echo * Today: %ldt% * :loop set /a d=1%d%-99 if %d% gtr 31 ( set d=1 set /a m=1%m%-99 if %m% gtr 12 ( set m=1 set /a y+=1 ) ) xcopy /d:%m%-%d%-%y% /l . .. >nul 2>&1 || goto loop set td=0%d% set td=%td:~-2% set tm=0%m% set tm=%tm:~-2% set ty=%y% set tomorrow=%td%.%tm%.%ty% echo * Tomorrow: %tomorrow% * echo ************************ for /f "tokens=1,2 delims=:" %%A in (Dates.txt) do ( if "%%B"==" %tomorrow%" echo # You have %%Atomorrow! ) goto :EOF :not_found_dates echo Dates.txt not found! goto :EOF 它适用于Dates.txt文件,该文件使用以下格式的日期: EventName1:31.05.2016 (不应该忘记冒号前后的单个空格,以及小于10的天和月的前导零.) 更新: 首先,设置/ a d = 1会增加一天. 然后,这一行: xcopy /d:%m%-%d%-%y% /l . .. >nul 2>&1 || goto loop 检查由set / a d = 1 part形成的日期是否实际存在于日历中.如果形成的日期不存在,它只是“跳过”日期,移动到循环的开头再添加一天.这样,不存在的日期不能设置为明天的日期. if%d%gtr 31(部分没有做任何事情,除非它实际上是今天的第31天. 所以,尽管if%d%gtr 31(看起来有点令人困惑的部分,这段代码仍然适用于少于31天的月份. 要更好地理解它,请打开@echo并跟踪日期值中的更改. 例如,如果我们使用: set d=30 set m=04 set y=2016 输出是: ************************ * Today: 30.04.2016 * * Tomorrow: 01.05.2016 * ************************ 另外,对于: set d=28 set m=02 set y=2015 输出: ************************ * Today: 28.02.2015 * * Tomorrow: 01.03.2015 * ************************ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 将Windows Server用于非服务器的事情是否可以(行业接受)?
- wpf – 页面上的某些控件对于MS UI Automation不可见
- 在uint8_t(C)中以原子方式存储值
- Windows勒索病毒席卷全球:全系列补丁下载及解决办法(内附补
- windows – Sticky Notes如何工作?
- Window调整大小事件在jQuery中触发两次
- 在Windows 10上安装PHP7和Apache2.4 – php7apache2_4.dll错
- Microsoft Access 2003数据库可以存储多少条记录?
- windows下安装PhpDocumentor(phpdoc)笔记
- 在Windows上从python连接到odbc的常用方法?
- active-directory – Windows Server 2003 – 应
- 在Windows 7上编译Fortran .dll(免费)?
- ms-access – 使用Microsoft Access创建独立应用
- 如何在NSIS安装程序脚本中捕获没有gotos / label
- Qt,QML和Windows 8
- .net – 将自定义/新属性添加到任何文件,无论其类
- 什么是Windows关闭时做什么?
- windows – Delphi XE2将Application.MainForm.H
- 如何在Windows中旋转tomcat日志?什么是最好的方
- winapi – Win32.如何将POINT转换为LPARAM