我试图find一个常规(PowerShell或不行)批处理脚本,将只维护文件夹中的最近5个文件,无论文件名。 我在这里和那里发现了一些看起来不起作用或不做我所需要的东西。 我将不胜感激任何帮助,你可以提供。 非常感谢你!
使用DIR命令列出按修改时间戳排序的文件,降序。 使用FOR / F处理结果,跳过前5个。
从命令行使用以下命令删除当前目录中最近修改的5个文件:
for /f "skip=5 eol=: delims=" %F in ('dir /b /od /tw /a-d') do @del "%F"
如果在批处理文件中使用,则百分比需要加倍。 你也可能想要指定你想从哪个文件夹中删除。
@echo off pushd "c:\yourFolder" && ( for /f "skip=5 eol=: delims=" %%F in ('dir /b /od /tw /a-d') do del "%%F" )
批处理文件不应该驻留在正在从中删除的文件夹中。 如果它确实存在于同一个文件夹中,则需要防止批处理文件自身删除:
@echo off pushd "c:\yourFolder" && ( for /f "skip=5 eol=: delims=" %%F in ('dir /b /od /tw /a-d') do if "%%~fF" neq "%~f0" del "%%F" )