要对某一个目录进行频繁的备份,我懒,不想每次都将某个目录压缩成zip,然后再把这个zip改名字为ABC_20070101102311.zip,打上年月日时分秒的戳,有没有什么办法可以智能一点儿呢?
如下的方法将介绍如何使用免费的压缩工具zip来实现目录打包备份。
1,zip.exe已经安装在Windows的Path里面了,例如,从http://www.info-zip.org/下载zip.exe放到c:/windows/system32/。 zip.exe required, download from http://info-zip.org
2,把打包的脚本bkzip.cmd也放到Windows的Path里面。
Copy the zip.exe to path, e.g c:/windows/system32.
3,如果有一个目录叫ABC,我们要对它进行备份,于是在ABC的上一级目录,运行bkzip ABC,于是就有一个ABC_xxxx.zip的压缩包出来了,如果想连这一步也写成脚本,那么可以写一个back_abc.cmd,内容为call bkzip abc. If you want to backup a folder named ABC, just execute command "bkzip ABC" or drag drop the folder to bkzip.cmd.
bkzip.cmd的内容如下,
如下的方法将介绍如何使用免费的压缩工具zip来实现目录打包备份。
1,zip.exe已经安装在Windows的Path里面了,例如,从http://www.info-zip.org/下载zip.exe放到c:/windows/system32/。 zip.exe required, download from http://info-zip.org
2,把打包的脚本bkzip.cmd也放到Windows的Path里面。
Copy the zip.exe to path, e.g c:/windows/system32.
3,如果有一个目录叫ABC,我们要对它进行备份,于是在ABC的上一级目录,运行bkzip ABC,于是就有一个ABC_xxxx.zip的压缩包出来了,如果想连这一步也写成脚本,那么可以写一个back_abc.cmd,内容为call bkzip abc. If you want to backup a folder named ABC, just execute command "bkzip ABC" or drag drop the folder to bkzip.cmd.
bkzip.cmd的内容如下,
bkzip.cmd@echo off
set ZERO = 0
set HH = % TIME :~ 0 , 2 %
set MM = % TIME :~ 3 , 2 %
set SS = % TIME :~ 6 , 2 %
set YYYY = % DATE :~ 0 , 4 %
set MON = % DATE :~ 5 , 2 %
set DAY = % DATE :~ 8 , 2 %
rem if HH GEQ 10 (echo "%HH%>=10") else (echo "%HH%<10")
![]()
if HH GEQ 10 ( goto :YES ) else ( goto :NO )
:YES
set FN = %YYYY%%MON%%DAY%%HH%%MM%%SS%
goto :END
:NO
set HH = % TIME :~ 1 , 1 %
set FN = %YYYY%%MON%%DAY%%ZERO%%HH%%MM%%SS%
goto :END
:END
rem echo %TIME%
rem echo %FN%
![]()
zip -r - 0 " %1_%FN%.zip " %1
:EXIT
![]()
压缩的时候,使用了-0的压缩比例,目的是为了 You can also change "zip -r -0 ..." to "zip -r -9 ..." for best compress rate
1,快
2,只打包不压缩,将有利于那么将多次的几十个备份打包再一次进行打包压缩的时候。
如果不喜欢只打包不压缩的话,可以去掉这个-0或者修改成-n, n =1~9
这里只介绍了如何使用zip(免费)来做,还可以使用其他的商业压缩软件,这里就不介绍了。
以上功能只在English Windows XP上面试验过,在其他语言环境下,如果差生的时间戳不一样,可以通过Regional and Language Options(Start->Settings->ControlPanel)来调整。