1

我做了一些查找,但找不到确切的代码。我拥有的是一系列备份到远程位置的服务器备份。我需要一种方法来让这个远程位置服务器每晚运行一个 Windows 脚本,并根据我需要保留的天数删除文件。

每天晚上,使用 %random% 标签使用唯一的文件名完成基于脚本的备份。例如,我需要保留最近 20 天的备份,并删除其余的

我查看了“forfiles”,但在所有子文件夹中的特定天数后删除了所有文件。

我只需要一个简单的脚本来查看给定文件夹中主文件夹(目录)的日期。它会根据日期删除和删除该文件夹和所有子文件夹。

提前致谢

4

2 回答 2

0

forfiles与 if 检查结合使用

你需要一个像

ForFiles /P "PATH TO FOLDERS" /D -20 /C "CMD /C if @ISDIR==TRUE rmdir @FILE"

于 2013-05-03T16:10:16.497 回答
0

假设每个备份都在一个文件夹中,那么这将跳过最新的 20 个文件夹并删除其余文件夹。删除 echo 关键字以激活 rd 命令。

您可以将 /t:c 添加到 DIR 命令以使用文件夹创建时间。见目录/?选项。

@echo off
pushd "d:\backup" && (
for /f "skip=20 delims=" %%a in ('dir /a:d /o:-d /b') do echo rd /s /q "%%a"
)
pause
于 2013-05-03T16:55:48.787 回答