我不想“删除超过 X 天的文件”。如果我想这样做,我会从已经为此目的编写的数千个脚本中挑选一个,我不会费心在 ServerFault 上问这样一个微不足道的问题。
我确实想删除特定文件夹中除了最近的 N 个文件之外的所有文件。
背景:远程系统配置为将定期存档文件转储到 Windows 服务器上的共享中。这些文件的命名约定为 YYYYMMDD-hhmm.ext。如果存档过程失败,我不希望清除脚本仅仅因为文件超过这么多天而删除文件。无法将远程系统配置为在归档过程中清除文件。
因此,例如,当脚本运行时,可能有 10 个文件,可能有 7 个文件,文件夹中可能有 5 个文件。我需要始终至少保留最近的 5 个,无论它们多大。
这可以用 PowerShell 完成吗?
编辑:最好忽略与命名约定不匹配的文件或文件夹。不应删除其他文件和文件夹,也不应混淆脚本(导致保留少于 5 个存档文件)。