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