需求:输入文件夹名称,将该文件夹及内部所有文件备份到另一磁盘下,其中某一个文件夹不备份(由于该文件夹太大,超过1G).然后对备份文件夹进行压缩.完成备份工作.
1.如何实现其中一个文件夹不备份?
由于该文件夹太大,所以不能先xcopy,再deltree的方法
方法1:
使用存档属性集,在源文件夹里找到不希望备份的文件夹,对其右键->属性->高级->剔除"可以存档文件夹"
使用命令:xcopy "[源地址]" [目标地址] /a
方法2:
先将不希望复制的文件夹地址写进一个txt文件,然后在xcopy命令中排除(exclude)这个地址
此方法不需要设置文件夹属性.
使用命令:
echo [不希望复制的文件路径] > list.txt
xcopy "[源地址]" [目标地址] /e /c /q /y /exclude:list.txt
del list.txt /f
2.如何实现手工控制要复制哪一个文件夹?
set /p f=输入要备份的文件夹名:
rem 以下一句是将录入的小写字母转为大写(为统一文件夹大小写)
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set f=%%f:%%i=%%i%%
rem 对备份的文件需要跟上备份日期.如:备份的文件夹名为:Source,备份后的文件夹是:SOURCE_20091208
rem 所以这里对目标文件夹改名:
set /a curdate=%date:~0,4%%date:~5,2%%date:~8,2%
xcopy "D:/%f%/*.*" E:/%f%_%curdate%/ /e /c /q /y /exclude:list.txt
(其中%f%变量是输入的文件夹名,%curdate%变量是当前日期)
3.如何实现对备份文件夹的压缩?
方法1:
将C:/Program Files/WinRAR/ 目录下的Rar.exe 文件复制到 C:/WINDOWS/system32文件夹下
(根据实际安装目录操作)
在批处理命令中执行:
rar a [新文件名.rar] [原文件夹名]
(中括号是为查看清晰,实际语句中没有)
更多命令可以执行:
rar /?
方法2:
如果没有将文件复制到system32的权限.
以上语句可以改为:
"C:/Program Files/WinRAR/rar.exe" a [新文件名].rar [原文件名] -df -inul -y
参数说明
-df:压缩后删除备份的文件夹
-inul:不显示压缩过程中产生的信息
-y:所有中途产生的对话框,均回答yes
任务完成.