以下是一个示例批处理文件,用于删除除最新的X个文件之外的所有文件:
@echo off
setlocal
set "folder=C:\path\to\folder"
set "extension=.txt"
set "keep=5"
cd "%folder%"
rem 获取指定类型的文件列表
for /f "delims=" %%A in ('dir /b /o-d /a-d "%folder%\*%extension%"') do (
set "file=%%A"
setlocal enabledelayedexpansion
set "count=0"
rem 统计当前文件之后的文件数量
for /f %%B in ('dir /b /a-d /o-d /tc "%folder%\*%extension%"^|find /i /c "%file%"') do (
set "count=%%B"
)
rem 如果文件数量大于保留的数量,则删除文件
if !count! gtr %keep% (
echo Deleting: !file!
del /q "%folder%\!file!"
)
endlocal
)
endlocal
请按照以下步骤使用此批处理文件:
delete_old_files.bat
(或任何其他名称)。folder=C:\path\to\folder
,将要删除的文件类型更改为extension=.txt
。keep=5
。请确保在运行此批处理文件之前,对要操作的文件夹及其内容进行备份,以防意外删除文件。