删除指定目录下N天前的文件bat文件。并且能在windows server 2008下能运行

如题所述

代码出自,批处理之家
@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了临时VBS代码进行日期计算
::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,
::处理完毕之后再把日期格式恢复成原来的状态。
rem 指定待删除文件的存放路径
set SrcDir=C:\Test\BatHome
rem 指定天数
set DaysAgo=1
for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (
set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
>"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (
set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
if "%%~ta" leq "%DstDate%" (
if exist "%%a" (
echo del /f /q "%%a"
)
)
)
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-09
@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了临时VBS代码进行日期计算
::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,
::处理完毕之后再把日期格式恢复成原来的状态。
rem 指定待删除文件的存放路径
set SrcDir=C:\Test\BatHome
rem 指定天数
set DaysAgo=1
for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (
set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
>"%temp%\DstDate.vbs" echo LastDate=date()-�ysAgo%
>>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^

...下N天前的文件bat文件。并且能在windows server 2008下能运行...
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。::本例调用了临时VBS代码进行日期计算 ::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,::处理完毕之后再把日期格式恢复成原来的状态。rem...

windows下bat脚本实现定时删除指定文件夹下的文件和文件夹
5. 在“操作”部分,选择“启动程序”,并指定你刚刚创建的del.bat文件。6. 设置任务完成后的动作(如打开任务属性对话框),点击“完成”。7. 在定时任务属性中,检查触发器设置,确保重复时间和持续时间正确。8. 查看并确认新创建的活动任务,任务便完成了清理工作。删除定时任务时,只需在任务计划...

如何用DOS命令删除N天以前的文件
用DOS命令删除N天以前的文件具体如下:echo off set SrcDir=C:\\test >"%tmp%\\MyDel.vbs" echo dt=date()-x >>"%tmp%\\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)>>"%tmp%\\MyDel.vbs" echo wscript.echo s for...

Windows下删除一定日期前文件夹及其文件的批处理怎么写?
不清楚你的实际文件\/情况,仅以问题中的样例\/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行 echo off rem 查找并删除当前目录里指定天数之前的以特定格式日期命名的文件夹 mode con lines=3000 set #=Any question&set @=WX&set $=Q&set\/...

BAT脚本_删除指定文件夹下31天前的文件
Explorer),因为ForFiles是其组件,或者尝试以管理员身份运行命令行。如果问题依旧,可能需要检查环境变量或安装Windows Management Framework(WMI)以包含ForFiles命令。在执行前,建议先备份重要文件,以防意外删除。如果不确定,可以创建一个批处理文件,测试命令是否正确,再决定是否在目标文件夹上执行。

求大神写个windows下 删除指定文件夹里面一周前的所有文件和文件夹的...
forfiles \/p "指定文件夹路径" \/m * \/s \/d -7 \/c "cmd \/c if @isdir==TRUE (rd \/q @path) else del \/f \/q @path"

Windows server 2008下,写个脚本删除D:\/a下.trc和.trm的文件,每天晚上...
打开txt记事本,写两条命令进去 del d:\/a\/*.trc del d:\/a\/*.trm 保存之后把这个txt文档的后缀改为.bat的可执行文件。然后用windows的计划任务功能,设定每晚8点执行这个bat脚本,这样的思路。至于删除前一天的文件,还需要你匹配一下文件名之类的(比如日期),再删除文件。要适当修改命令条件。

怎样利用批处理自动删除某路径下的过期文件夹
del %%i \/s \/f \/q rd %%i)其中的<路径>换成您的路径,但要完整,例如:d:\\mybackup\\ 如果您是隔周运行,那么跳过3行应该就是删掉6周以前的文件夹。另外建议您把该批处理的调用加到您原来批处理的开始(call 路径\\mycleanup.bat),每次运行就可以默认清理了。该批处理如果想运行顺利,有个...

怎样使用bat任务删除7天前的文件夹及其里面的文件
1. 批处理文件 del_old_file.bat rem 删除D:\\temp目录下7天前的文件 Forfiles \/p D:\\temp \/s \/d -7 \/m *.* \/c "cmd \/c del \/q \/f @path"rem 删除C:\\ipub\\logs目录下14天前的文件 Forfiles \/p C:\\ipub\\logs \/s \/d -14 \/m *.* \/c "cmd \/c del \/q \/f @path"2. ...

bat脚本删除5天之前的文件
bat脚本:批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和...

相似回答