2011-08-30 134 views
1

可能重复:
Batch file to delete files older than N days编写一个批处理文件来删除所有文件

有人可以告诉我怎么写,我可以附加到一个预定的任务,将批量删除文件IIS日志超过2周。

我正在使用Windows XP。

谢谢。

+1

你遇到的麻烦,此部分,特别是? –

+0

这应该有所帮助。 http://stackoverflow.com/questions/51054/batch-file-to-delete-files-older-than-n-days –

+0

如果你的意思是实际上写文件,只需使用记事本或任何其他文本编辑器并将其保存为.bat或完成后重命名。如果你需要的内容,请参阅下面的VonC的帖子。 – Kevin

回答

6

使用forFiles在批处理文件:

forfiles -p C:\WINDOWS\system32\LogFiles\W3SVC1 -s -m *.log -d -14 -c "Cmd /C DEL @File" 

命令行PARAMS解释说:

-d -14         // Specifies num days (14 for 2 weeks) 
-p C:\WINDOWS\system32\LogFiles\W3SVC1 // path 
-m *.log         // file mask 

你可以找到所有在我的岗位在TechNet链接。

你需要安装一个双赢服务器资源工具包,如Windows Server 2003 Resource Kit Tools

+0

这不适用于Windows XP。 – Tarik

+0

@Braveyard:看我的编辑。你需要资源工具包。可以是Win2k3或更高版本。 – Mrchief

+0

如果您的计算机上没有默认安装forfiles,请从[Microsoft FTP server](ftp://ftp.microsoft.com/ResKit/y2kfix/x86/)获取它。将它放到C:\ WINDOWS \ system32 \ forfiles.exe – smoak

1

您可以使用script deleteoldfiles.bat作为示例。
(摘自“How to Delete Old IIS Log Files”的博客文章)

下面的示例删除命名的最后一次修改了以前1年(365天)“ex*.log”的所有文件。起始目录是C:\Windows\System32\LogFiles

deleteoldfiles.bat C:\Windows\System32\LogFiles ex*.log 365 

下面的示例搜索所有子目录中C:\Windows,并删除所有文件名为“dump.txt”这是最后的60天前修改:

deleteoldfiles.bat C:\Windows dump.txt 60 

从那里,你可以安排该批次,确保o f the arguments and their enclosing quotes aren't an issue
例如见 “How to use the Windows Task Scheduler”。

1
forfiles -p "C:\what\ever" -s -m *.* -d <number of days> -c "cmd /c del @path" 

语法 FORFILES [/ P路径] [/ M面膜] [/ S] [/ c命令] [/ d [+ | - ] {dd/MM/yyyy | DD}]

密钥 /P路径的路径搜索(缺省值=当前文件夹)

/s的递归到子文件夹

/C命令来对每个文件执行的命令。 将命令字符串用双引号括起来。 默认值=“CMD/C回声@file”

  The Command variables listed below can also be used in the 
      command string. 

/d日期排序,最后修改日期选择文件大于或

+0

看来这不适用于Windows XP。 – Tarik

相关问题