[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样自动压缩备份3个月前的数据?

如题:D:/back目录下 有 1101,1102,1103,1104(年-月)这类命名的文件夹,将3个月之前的文件夹 压缩备份到 E:/back目录下,最后删除D盘下已经被备份的文件夹

<code>
@echo off
setlocal EnableDelayedExpansion
rem 定义路径
set bspath=d:\backup
set wrar="C:\Program Files\WinRAR\Rar.exe"
set bdpath=e:\backup

rem 定义差距时间
set mdif=3

rem 获取当前年、月
set ny=%date:~2,2%
set /a nm=%date:~5,2%

rem 根据文件夹名确认是否要备份
for /f %%i in ('dir /b /on /ad %bspath%') do (
call :bak %%i
)

goto :eof

:bak
set fname=%1
set /a fm=%fname:~2,2%+2
echo %fm%
if not %fname:~0,2%==%ny% (
%wrar% a -df %bdpath%\%1.rar %bspath%\%1
) else if %fm% LSS %nm% (
%wrar% a -df %bdpath%\%1.rar %bspath%\%1
)

goto :eof

</code>

以上是我朋友写的,但是我跑了下 发现不对,求高手指点

TOP

本帖最后由 hanyeguxing 于 2011-4-15 17:56 编辑

1,code是用[]括起来的,而不是<>
2,推荐使用winrar.exe或rar.exe,相关语法参考winrar安装目录下的WinRAR.hlp、WinRAR.chm、Rar.txt
例如:
-dr压缩后删除源到回收站
-df压缩后直接删除源文件而不删除源到回收站
-dw压缩后直接删除源文件并以0填充来反恢复
-toAd只处理A天前的文件
winrar.exe或rar.exe支持*和?通配、掩码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表