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

use*_*091 1 windows batch-file

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

dbe*_*ham 6

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

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

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

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

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

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

@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"
)
Run Code Online (Sandbox Code Playgroud)

  • 我只建议您检查“c:\yourFolder”是否确实存在。如果没有,`pushd`将会失败,但脚本仍然会继续运行,并且您有删除当前文件夹中文件的风险 (2认同)