Windows 7只需保留文件夹中的最新5个文件并删除其余文件

时间:2012-12-21 18:44:20

标签: windows batch-file

我正在尝试找到一个常规(powershell或not ok)批处理脚本,它将仅保留文件夹中最近的5个文件,而不管文件名。我在这里和那里发现了一些它似乎不起作用或不做我需要的东西。我非常感谢您提供的任何帮助。非常感谢你!

1 个答案:

答案 0 :(得分:6)

使用DIR命令列出按修改后的时间戳排序的文件。使用FOR / F处理结果,跳过前5个。

从命令行,使用以下命令删除当前目录中除最近修改的5个文件之外的所有文件:

for /f "skip=5 eol=: delims=" %F in ('dir /b /o-d /tw /a-d') do @del "%F"

如果在批处理文件中使用,则百分比需要加倍。您可能还想指定要从中删除的文件夹。

@echo off
pushd "c:\yourFolder" && (
  for /f "skip=5 eol=: delims=" %%F in ('dir /b /o-d /tw /a-d') do del "%%F"
)

批处理文件不应驻留在要删除的文件夹中。如果它存在于同一文件夹中,则需要阻止批处理文件自行删除:

@echo off
pushd "c:\yourFolder" && (
  for /f "skip=5 eol=: delims=" %%F in ('dir /b /o-d /tw /a-d') do if "%%~fF" neq "%~f0" del "%%F"
)