标题: [日期时间] 批处理怎样根据昨天的日期创建文件夹? [打印本页]
作者: golden8510 时间: 2012-5-7 22:32 标题: 批处理怎样根据昨天的日期创建文件夹?
關於Date:
For今天20120507,可利用以下code“%date:~0,4%%date:~5,2%%date:~8,2%”創建,如我想創建比今天早一天20120506日期時,我該如何創建呢?- @echo on
- md d:\puch\EM920-12\%date:~0,4%%date:~5,2%%date:~8,2%\FAIL
- md d:\puch\EM920-12\%date:~0,4%%date:~5,2%%date:~8,2%\PASS
- exit
复制代码
作者: neorobin 时间: 2012-5-7 23:41
本帖最后由 neorobin 于 2012-5-7 23:44 编辑
回复 1# golden8510 - for /f "tokens=1-3 delims=-./ " %%l in ("%date%") do set /a "y=%%l,m=1%%m,d=1%%n-1,m-=!(d-100),y-=!(m-100),d+=!(d-100)*(31-(!(m-104)|!(m-106)|!(m-109)|!(m-111))-!(m-102)*(3-(!(y%%4)&!!(y%%100)|!(y%%400)))),m+=!(m-100)*12")
- echo %y%%m:~-2%%d:~-2%
复制代码
以上假设系统的日期格式为 yyyy*MM*dd 其中 * 为 (-./) 三者其中之一, 若非如此, 就需加入识别格式再处理的代码
作者: golden8510 时间: 2012-5-8 22:06
回复 2# neorobin
看來有點複雜,還以為還簡單哦!
作者: gawk 时间: 2012-5-8 22:14
回复 3# golden8510
批处理里面的date命令不像Linux那样可以直接计算,必须自己写算法。
作者: neorobin 时间: 2012-5-8 22:20
回复 3# golden8510
代码思路上并不很复杂:
根据日期格式 以 适当的方式 提取出当前日期的 年, 月, 日 三个部分保存进三个变量 y,m,d(这里为了方便后面的格式输 出 m,d 都加上了 100),
将日数 d 减 1, 如果 d 值到了 100, 再将 月数 m 减 1, 如果 m 到了 100, 再将年数 y 减 1,
如果 日数 d 为 100, 将 日数 根据 现在 年数和月数 的结果进行设置: 大月: 31, 小月: 30, 平年 2 月: 28, 闰年 2 月: 29
如果 月数 m 为 100, 将 月数 设为 12.
最后输出: 年数直接输出, 月数 和 日数 取最右边的两位
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |