1

我正在尝试找到一个常规的(是否可以使用 powershell)批处理脚本,该脚本将只维护文件夹中最近的 5 个文件,而不管文件名如何。我在这里和那里发现了一些似乎不起作用或不做我需要的事情。我将不胜感激您能提供的任何帮助。非常感谢!

4

1 回答 1

7

使用 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"
)
于 2012-12-21T20:38:12.620 回答