帮忙写一个能删除某文件夹某天前的所有文件的脚本或批处理

谁能帮忙写一个能删除某文件夹某天前的所有文件的脚本或批处理,也就是说:我可以选择123文件夹,指定日期(如2010年3月1日),然后123文件夹中2010年3月1日前的所有文件全部删除,无论是VBS脚本,还是批处理都行。
还有更好的吗?请高手!!!

第1个回答  2010-06-30
如果你在一个指定的文件夹内建立一个固定的文件,例如:
D:\00\123
在123下再建立各种文件夹,这样是很容易删除的,批处理如下:
批处理名字:del.bat

编辑内容如下:

@echo off
deltree d:\00\123
exit

dos命令下输入del.bat,然后回车,显示:
Delete directory "d:\00\123" and all its subdirectories?[yn]
然后键入:
y
你的D:\00下的文件夹123就不见了,不过要小心使用,删了就没了!

因为deltree.exe不是内部命令,需要从网上下载一个放到需要执行的文件夹下,如上例:deltree.exe直接放到d:\00目录下就好。

你吧del.bat和deltree.exe单独放到一个文件夹里,例如d:\00中,在其中在建立文件,那样就好用多了。

试试,这是最简单的了,不行的话给我留言我传给你批处理和deltree.exe.
第2个回答  2010-06-30
下面代码中是以文件创建时间来判断的,如果要用文件最后修改时间作为判断,则将DateCreated改为DateLastModified就可以了,而最后访问时间为DateLastAccessed,时间格式可以是被当前windows识别的任意格式

DeleteFilesBeforeDate "C:\123","2010-03-01"
Function DeleteFilesBeforeDate(dstFolder, spDate)
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(dstFolder)
dDate = CDate(dDate)
For Each objFile In objFolder.Files
If objFile.DateCreated < dDate Then
objFile.Delete
End If
Next
Set objFolder = Nothing
Set objFso = Nothing
End Function

哪里不满意可以提出来
第3个回答  2010-06-28
@echo off
set d=%date:~0,10%
mshta vbscript:createobject("scripting.filesystemobject").opentextfile("wind.txt",2,true).writeline(dateadd("d",-2,"%d%"))(window.close)
for /f %%m in (wind.txt) do (set tt=%%m)
set /p ph=请输入需要操作的文件夹(支持拖放):
for /r "%ph%" %%i in (*) do (if %%~ti lss %tt% ("%%~ti" del /a /f /s /q "%%i"))
———————————————————————————————————
修改代码内的 dateadd("d",-2,"%d%") 改变删除时间
注意:一定要改 区域语言 里的 时间格式 为 yyyy-mm-dd
第4个回答  2010-06-30
我来给个比较简单的 bat:

echo off & mode con:cols=60 lines=20 & color 0a
set /p pt=请输入路径:
set /p dt=请输入日期(格式如 2010-03-01):
for %%i in ("%pt%\*") do if %%~ti lss %dt% del/f "%%i"
echo %pt% 下%dt%之前的所有文件已删除,再见!
ping -n 5 127.1>nul

ps:代码是以文件最后修改时间判定的日期。本回答被提问者采纳
相似回答