bat 批处理程序删除文件夹,删除两天前的文件夹和文件 windows 2003 下批处理删除三天前指定目录的所有文...

\u6279\u5904\u7406\u5220\u9664\u5f53\u524d\u6587\u4ef6\u5939\u4e0b\u5f53\u524d\u65e5\u671f2\u5929\u524d\u7684\u6587\u4ef6\u5939\u548c\u6587\u4ef6

\u5e2e\u4f60\u5199\u4e2a\u5220\u9664\u4fee\u6539\u65e5\u671f\u57282\u5929\u524d\u7684\u6587\u4ef6\u7136\u540e\u5220\u9664\u7a7a\u6587\u4ef6\u5939\u7684, \u5e94\u8be5\u53ef\u4ee5\u6ee1\u8db3\u8981\u6c42
\u5148\u6309\u4ee3\u7801\u8fd0\u884c\u6d4b\u4e00\u4e0b\uff0c\u4f1a\u663e\u793a\u8981\u5220\u7684\u6587\u4ef6\u53ca\u5176\u4fee\u6539\u65e5\u671f\uff0c\u4f46\u4e0d\u5220\uff0c\u628a\u7b2c14\u884c\u884c\u9996\u7684rem\u53bb\u6389\u8fd0\u884c\u624d\u4f1a\u771f\u5b9e\u5220\u9664\u663e\u793a\u7684\u6587\u4ef6, \u7531\u4e8e\u6d4b\u8bd5\u65f6\u6709\u4e9b\u6587\u4ef6\u5939\u8fd8\u6ca1\u5220\u7a7a\uff0c\u6240\u4ee5\u6d4b\u8bd5\u65f6\u663e\u793a\u7684\u7a7a\u6587\u4ef6\u5939\u4e0e\u6700\u540e\u8fd0\u884c\u65f6\u5e76\u4e0d\u4e00\u81f4
@echo offset/a n=2 &rem \u53ef\u8c03\u6574 \u4e0d\u8981\u8d85\u8fc7\u4e00\u4e2a\u6708\u7684\u5929\u6570set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100set/a d-=n,"1/(d>>31)" 2>nul&&( set/a m-=1,d+=31,y-=!m,m+=!m*12 set/a "d-=!(m-2)*(3-!(y&3))+!(m-4)+!(m-6)+!(m-9)+!(m-11)")set/a m+=100,d+=100set ymd=%y%-%m:~1%-%d:~1%echo \u5220\u9664%n%\u5929\u524d\u6587\u4ef6cd/d "%~dp0"for /r %%i in (*)do if /i not "%%i"=="%~f0" ( if "%%~ti" lss "%ymd%y" ( echo %%~ti %%irem del "%%i"))echo \u5220\u9664\u7a7a\u6587\u4ef6\u5939for /f "delims=" %%i in ('dir/b/ad/s^|sort/r')do ( rd "%%i" 2>nul&&echo %%i)pause

@echo off
rem \u6307\u5b9a\u5f85\u5220\u9664\u6587\u4ef6\u7684\u5b58\u653e\u8def\u5f84
set SrcDir=C:\Test\Test
rem \u6307\u5b9a\u5929\u6570
set DaysAgo=3
::\u5982\u679c\u6f14\u793a\u7ed3\u679c\u65e0\u8bef\uff0c\u628adel\u524d\u9762\u7684echo\u53bb\u6389\uff0c\u5373\u53ef\u5b9e\u73b0\u771f\u6b63\u5220\u9664\u3002
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c echo del /f /q /a @path"
pause

保存为bat文件运行,这是删除e:\111文件夹下的2天前的rar文件. 可根据自己的要求修改

@echo off&setlocal EnableDelayedExpansion
::取2天之前的日期.set _tian=2下面这句中的2代表天数.
set "_tian=2"
>tmptmp.vbs echo wscript.echo dateadd("d",-%_tian%,date)
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo tmptmp.vbs') do (
set "y=%%i"&set "m=%%j"&set "d=%%k"
)
if %m% LSS 10 set "m=0%m%"
if %d% LSS 10 set "d=0%d%"
set "rq=%y%-%m%-%d%"
echo.&echo 注意:即将删除 %rq% 以前建立的文件

::判断文件
for /f "delims=" %%a in ('dir/b/a-d e:\111\*.rar') do (
set "a=0"
for /f "skip=4 delims=" %%b in ('dir/tc "e:\111\%%a"') do (
set /a "a+=1"
if !a! equ 1 (
set "var=%%b"
for /f "tokens=1 delims= " %%c in ("!var!") do set "str=%%c"
if !str! lss !rq! del /q "e:\111\%%a"
)))
del/q temtem.vbs
pause

用VBS吧,用法是一样的,写进记事本,把后缀txt改成VBS就可以了!然后双击运行就可以了!我脚本的意思是,在D盘的111文件夹里有2009-12-1,2009-12-2……等子文件夹,运行脚本后,删除不符合要求的文件夹 Set fso=WScript.CreateObject("scripting.filesystemobject")
Set fs=fso.GetFolder("d:\111")
Set f=fs.SubFolders
For Each uu In f
s=CDate(uu.Name)
If s<#2009-12-5# Then
uu.Delete
End if
next

扩展阅读:怎么打开bat文件 ... 批处理命令删除文件夹 ... 文件夹死活删不掉 ... 批量删除文件 bat ... bat批处理删除空文件夹 ... bat copy拷贝文件夹 ... 批处理怎么删除文件夹 ... bat批处理命令大全 ... 删除文件名前缀 批处理 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网