使用Batch将10个最旧的备份移动到存档

时间:2013-06-03 18:09:14

标签: windows batch-file archive

我正在寻找使用Batchfile执行以下操作的解决方案。 我每天都会在一个文件夹中备份我的数据库,该文件夹以当天命名。

2013年5月13日

这已经很好了

现在问题:

在一个月末,我想将最旧的10个文件夹(包括所有文件)合并到存档文件夹中。 来自10个最旧文件夹的所有文件都应移至存档文件夹。同样的文件应该被覆盖(从最旧到新),文件夹(现在为空)也应该被删除。

最好的问候

2 个答案:

答案 0 :(得分:0)

最简单的方法是安装UnixUtils以获取mvtailhead实用程序

然后

dir /b /AD /OD|tail -n 10 > temp.txt

列出了当前一个

中的10个最新目录
for /f "delims=" %%i in (temp.txt) do echo D|mv -f "c:\source\%%i" "c:\destination\%%i" /y >temp.bat

创建脚本将它们移动到某个地方

call temp.bat

调用它。

答案 1 :(得分:0)

这应该将最旧的10个文件夹的内容移动到存档文件夹(应该预先存在),覆盖并保留最新的副本,并删除文件夹:但它不会指望备份文件夹中的子目录。 / p>

测试后,您可以安排批处理文件。

@echo off
setlocal enabledelayedexpansion
cd /d "d:\source\folder"
set "c=0"
for /f "delims=" %%a in ('dir /ad /b /od') do (
set /a c=c+1
if !c! LEQ 10 (
     echo "%%a"
     move /y "%%a\*.*" "D:\destination\archive\" >nul
     rd "%%a"
  )
)
pause