我正在寻找使用批处理文件执行以下操作的解决方案。我每天都会在一个文件夹中备份我的数据库,该文件夹以日期命名,例如。
2013-05-13
. 这已经很好了。
现在的问题:
在月底,我想将最旧的 10 个文件夹(包括所有文件)合并到一个存档文件夹中。10 个最旧文件夹中的所有文件都应移至存档文件夹。相同的文件应该被覆盖(从旧到新)并且文件夹(现在是空的)也应该被删除。
此致
我正在寻找使用批处理文件执行以下操作的解决方案。我每天都会在一个文件夹中备份我的数据库,该文件夹以日期命名,例如。
2013-05-13
. 这已经很好了。
现在的问题:
在月底,我想将最旧的 10 个文件夹(包括所有文件)合并到一个存档文件夹中。10 个最旧文件夹中的所有文件都应移至存档文件夹。相同的文件应该被覆盖(从旧到新)并且文件夹(现在是空的)也应该被删除。
此致
这应该将最旧的 10 个文件夹的内容移动到存档文件夹(应该预先存在),覆盖并保留最新的副本,并删除文件夹:但它不需要备份文件夹中的子目录。
测试后,您可以安排批处理文件。
@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
最简单的方法是安装UnixUtils来获取mv
,tail
和head
实用程序
然后
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
调用它。