打算设置一个任务计划程序,每次启动的时候就去执行一个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段.
BAT删除指定文件夹下、特定文件类型、当前日期之外的文件
echo delete done!!(delete file:%b%\/total file:%a%)pause :ENDLOOP
bat命求助,如何删除文件夹和子文件夹中某个类型以外的所有文件。
echo off & title 删除指定格式外的文件 By 依梦琴瑶 cd \/d "%~dp0"::设置要排除的文件格式,多个格式之间使用英文逗号隔开 set Ext=txt for \/f "delims=" %%a in ('dir \/a-d\/s\/b') do (if \/i not "%%~a"=="%~f0" (set "Skip="for %%i in (%Ext%) do (if \/i ".%%...
bat批处理文件 删除制定文件夹当前日期3个月以前的文件
for each i in fol.files datefile = fso.getfile(i).Datelastmodified dt=datediff("m",datefile,now)if datevalue(datefile)<=datevalue(dateadd("m",dt-3,now)) then fso.deletefile i next '经测试.凡是3个月之前的文件都会被删除 '保存为vbs类型文件 ...
怎样用批处理删除指定目录下某个文件夹和文件以外的所有文件
在txt文档里面输入以下代码,保存的时候选择类型为所有文件,文件名用.bat后缀 假设目录A在e盘 del \/f \/s \/q e:\\A 删除A目录里面的所有文件 del \/f \/s \/q e:\\A\\*.tmp 删除A目录里面的所有以tmp为后缀名的文件 del \/f \/s \/q e:\\A\\*.* 删除A目录里面的所有文件 rd \/s ...
想要使用bat来删除某指定文件夹内的,指定天数以前的文件。
如果每天一个文件的话,删除30天前的文件为例,可以用下面的方法 echo off pushd d:\\指定文件夹 set n=30 for \/f "skip=%n% tokens=*" %%i in ('dir\/b\/o-d') do del "%%i"如果每天文件多于一个的话,需借助vbs来实现。用bat本身判断日期的有效性有点复杂。
批处理bat问题:删除一个文件夹下所有子文件夹下指定时间前的文件
要是有个2013111,这是11月1号,还是1月11号???,本身这样做备份文件名就不太合理的,要做也做成yyyymmdd全用8位格式的.下面代码是比较文件的创建时间来处理,不是比较文件夹名称上的时间 测试结果正确后删除第6行的echo echo offfor \/f "tokens=1-3 delims=\/- " %%a in ("%date%")do se...
怎么用bat删除某个文件夹下的文件 但除了某个文件或文件夹
rd \/s \/q C:\\WINDOWS\\temp & md C:\\WINDOWS\\temp del \/f \/s \/q "C:\\Documents and Settings\\Administrator\\Local Settings\\Temporary Internet Files\\*.*"del \/f \/s \/q "C:\\Documents and Settings\\Administrator\\Local Settings\\Temp\\*.*"那些tem的备份文件不用每次都删除 隔一段时间再来...
windows下bat脚本实现定时删除指定文件夹下的文件和文件夹
在Windows环境下,要实现定时清理特定文件夹(例如E:\\ABC\\DEF)的文件和子文件夹,可以使用bat脚本。首先,创建一个名为del.bat的批处理文件,内容如下:f \/s \/q E:\\ABC\\%date:~0,4%\\%date:~5,2%\\%date:~8,2%\\*.* >nul s \/q E:\\ABC\\%date:~0,4%\\%date:~5,2%\\%date:~8,2%...
bat删除文件夹下,特定名以外的文件和文件夹
提个思路,将他们剪切至同盘,删除文件夹,然后建立MA文件夹,再剪切回来。放在与Ma同一文件夹下即可 相关命令:move,md,rd MA.bat echo off md temp move MA\\printfile.csv temp move MA\\16 temp rd \/s \/q Ma md MA move temp\\printfile.csv MA move temp\\16 MA rd temp ...
批处理bat删除某文件和文件夹除外的所有文件和文件夹
如果是win7或vista,直接运行下面的批处理即可。如果是xp,需要先下载robocopy.exe。如果需要增加排除的文件,就加到 \/xf 后面(以空格隔开),排除的文件夹加到 \/xd 后面(以空格隔开),文件夹和文件名如果含空格,需用 " "robocopy h:\\tem2 h:\\xxxxyyyyzzzz \/s \/move \/xf 7za.exe must.txt ...