“删除早于以下时间的文件”批处理脚本

“删除早于以下时间的文件”批处理脚本

因此,在进行备份工作时,我需要一个批处理脚本,该脚本允许我删除指定目录中超过 3 天的文件。此脚本将被设置为计划任务,每天在指定时间运行。

答案1

如果 powershell 可以接受(应该是,因为它在 Server 2008+ 上默认启用)请尝试以下操作:

$numberOfDays = 3
$Now = Get-Date
$TargetFolder = “C:\myoldfiles”
$LastWrite = $Now.AddDays(-$numberOfDays)
$Files = get-childitem $TargetFolder -include *.bak, *.x86 -recurse | Where {$_.LastWriteTime -le “$LastWrite”} 

foreach ($File in $Files)
{
    write-host “Deleting File $File” -foregroundcolor “Red”;
    Remove-Item $File | out-null
} 

资源这里

答案2

forfiles -pc:\pathtofiles\ -m *.rar -d-5-c“cmd /c 删除@路径”

-5您要删除的文件的年龄在哪里(在本例中为 5 天或更长时间)。此脚本正在删除.rar文件 --m *.rar如果您想删除任何文件类型,请删除。

答案3

如果您坚持使用批处理文件,那么 Robocopy.exe 就是您的答案。它速度快(多线程)且非常强大。对于您的场景,您可以使用以下内容作为指南:

:: Moves dir & files older than 3 days to i:\Destination
:: Wildcards acceptable
robocopy i:\Source\ i:\Destination\ /MOVE /MIR /MINAGE:3 /ETA
:: Removes the destination tree
rd /s /q i:\destination

选项列表很长,请执行 robocopy /? 来查看所有选项。您甚至可以使用它进行增量备份、计划、创建备份配置文件等。

答案4

您可能会看看 Horst Schaeffer 的 DelAge32:

http://home.mnet-online.de/horst.muc/wbat32.htm#top

DelAge32 - ver. 2.3 (c) 2003-2008, Horst Schaeffer
Deletes or moves files (path with file pattern) by age (number of days)
Syntax:  DelAge32 filespec age [options]
Options:
  /created /accessed /modified (default) - file stamp used to evaluate age
  /includeRO - include read-only files
  /includeH  - include hidden files
  /includeS  - include system files
  /includeRHS -include read-only, hidden and system files
  /recurse   - include subdirectories
  /subonly   - /recurse excluding initial directory
  /rd        - remove empty subdirectories
  /move path - move files to specified path
  /preview   - list, but no action
  /quiet     - no output

您的命令可以简单如下:

delage32.exe c:\logdirectory\*.log 3

我已将此命令作为计划任务运行。

相关内容