打算设置一个任务计划程序,每次启动的时候就去执行一个bat文件,bat文件的功能需求如标题所示(文件名称格式是YYYYMMDDHH)。
比如:
文件夹:D:\back
文件类型:*.dmp
假设D:\back文件夹下面有一下文件:
2016120106.dmp
2016120112.dmp
2016120118.dmp
2016120206.dmp
2016120212.dmp
2016120218.dmp
test.txt
delete.bat
...
假设今天是2016年12月02日,则需要删除2016120106.dmp、2016120112.dmp、2016120118.dmp这3个文件。
有哪位大神能写出这种代码,bat脚本没怎么研究过,有些命令短时间内弄不懂,给出满意的答复可以加金币。
感谢你的回答,确实能够实现我需要的功能,不过我有几个疑问,想请教一下,结束之后悬赏我会加倍的。
下面是我根据我的理解做的修改和注释:
我无法理解的部分是%~n1和goto :ENDLOOP,%~n1是在网上没有找到对应的解释和用法说明;goto :ENDLOOP,按理说跳转后已经到了脚本末尾,为何脚本不会中断执行,而是回到上面继续执行呢?恳请大神赐教。
1.~n1是在网上没有找到对应的解释和用法说明;
回答:变量说明如下
%~I 展开删除了周围的任何引号 (") 的 %I
%~fI 将 %I 展开到完全合格的路径名
%~dI 只将 %I 展开到驱动器号
%~pI 只将 %I 展开到路径
%~nI 只将 %I 展开到文件名
%~xI 只将 %I 展开到文件扩展名
%~sI 展开路径以只包含短名称
%~aI 将 %I 展开到文件的文件属性
%~tI 将 %I 展开到文件的日期/时间
%~zI 将 %I 展开到文件大小
2.goto :ENDLOOP,按理说跳转后已经到了脚本末尾,为何脚本不会中断执行,而是回到上面继续执行呢?
回答:因为前面用了For循环,会遍历每一个d:\back下面的dmp文件,所以有多少个文件,就会调用多少次:Start段.