bat 批处理程序删除文件夹,只保留最近两天的文件

具体是这样的:文件夹名称为:A100222_001,两天前的文件名是A100220_001;如何删除两天前的文件只保留最近两天的文件

@echo off
::保存天数
set days=2

::要进行操作的文件路径
set address=D:\我的文档\111
%address:~0,2%
cd %address%
if not %errorlevel%==0 exit
::如果删除当前目录,请删除以上6行文字

set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%

:days前的日期
if %month:~0,1%==0 set month=%month:~1,1%
if %day:~0,1%==0 set day=%day:~1,1%
if not %day%==1 (set /a day-=1
) else (
if not %month%==1 (set /a month-=1) else set month=12&&set /a year-=1
if %month%==2 set day=31
if %month%==4 set day=31
if %month%==6 set day=31
if %month%==8 set day=31
if %month%==9 set day=31
if %month%==11 set day=31
if %month%==1 set day=31
if %month%==5 set day=30
if %month%==7 set day=30
if %month%==10 set day=30
if %month%==12 set day=30
if %month%==3 call :是否润年
)
::补零
if "%day:~1,1%"=="" set day=0%day%
if "%month:~1,1%"=="" set month=0%month%
set /a days-=1
set terday=%year%%month%%day%
if not %days%==1 goto days前的日期

for /f %%i in ('dir /b A10????_???') do call :删除文件 %%i
echo 删除%days%天前的文件夹OK!
pause
exit

:删除文件
set files=%~n1
if %files:~1,6% LSS %terday:~2,6% rd /q/s %files%
goto :eof

:是否润年
set day=28
set /a ytemp=%year%/4
set /a ytemp=%ytemp%*4
if %ytemp%==%year% set day=29
goto :eof
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-02-23
文件夹名都是以A打头,这样的命名格式: AYYMMDD_XXX 的话 实现挺简单的
但是这些文件夹在哪个路径的?还是整个电脑到处都有?有没有范围 比如c盘?或某个固定目录?
第2个回答  2010-02-25
用forfiles,在WIN 2003上考一个

bat 批处理程序删除文件夹,只保留最近两天的文件
if not %days%==1 goto days前的日期 for \/f %%i in ('dir \/b A10???_???') do call :删除文件 %%i echo 删除%days%天前的文件夹OK!pause exit :删除文件 set files=%~n1 if %files:~1,6% LSS %terday:~2,6% rd \/q\/s %files goto :eof :是否润年 set day=28 set \/a...

bat 批处理剪切文件和文件夹,只保留最近两天的文件和文件夹
可以,你把所有的文件按照“修改时间”排列,然后选择,祝你工作顺利。

bat 批处理程序删除文件夹,删除两天前的文件夹和文件
保存为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* del...

编写bat文件删除文件夹
首先,你需要在电脑上创建一个新的文件夹,然后新建一个名为“删除.bat”的文本文件。接着,打开这个文本文件,不需要添加任何内容,只需保存即可。重要的是,你需要更改这个文本文件的扩展名,将其从“TXT”更改为“BAT”。双击确认更改后,你会看到文件图标可能会有所变化,这表明它现在是一个批处理...

如何删除文件夹而保留其中的内容
2. **使用软件工具**:有些软件工具,如“汇帮文件夹提取器”等,可以批量处理文件夹,将文件夹内的文件提取出来并保存到指定位置,同时删除空文件夹。这种方法适用于需要批量处理大量文件夹的场景,可以显著提高效率。3. **编写脚本**:对于熟悉编程的用户,可以编写批处理脚本(.bat)或PowerShell...

bat批处理,定时执行删除某文件
我理解是要删除日期前2天时建的文件夹,这些文件夹名都是以4位某月某日命名的,以下保存到这些日期文件夹同样位置,取名xx.bat echo off&setlocal enabledelayedexpansion :: 下一行 ds=为要删前第几天的 (可修改,但不要大于28)set ds=2 set dy=%date:~,4 set dm=%date:~5,2 set dd=%...

批处理文件命令删除文件夹
1、右键单击桌面上的任意位置→新建→文本文档。2、然后,取一个随机名称(删除顽固的图标)。3、双击打开新创建的文本文档文件,然后输入删除文件的命令:Del \/ F \/ A \/ Q ?%1 RD \/ S \/ Q ?%1 4、保存它,然后将文件的扩展名从原始txt更改为bat。此时系统将发出警告,单击是。5、然后...

bat批处理文件 删除制定文件夹当前日期3个月以前的文件
set fol=fso.getfolder(Folder)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类型文件 ...

批处理只删除一个众多的文件夹里,昨天的文件夹?
批处理的确复杂 了些,但是创建个bat放到计划任务里也的确省了不少事 在批处理里去判断一个文件夹的创建日期至今相隔的天数,还得用到儒略日这个概念,可以先了解一下;建议搜索 Julian_Day_Number 分享一下我整理的完整代码:ECHO OFF & SETLOCAL ENABLEDELAYEDEXPANSION REM 删除指定天数前创建的目录(...

想要使用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本身判断日期的有效性有点复杂。

相似回答