您当前的位置:周俊奇博客 > 杂项 > 那些小事

windows系统自动备份脚本

时间:2016-06-27 15:49:04

如何利用批处理完成本地文件或者文件夹的备份。

该方法可把某文件夹下的文件同步到另外的文件夹,可忽略已经存在的文件,可根据文件日期来判断复制最新的文件。
首先建立一个文本文件,复制以下代码:

@echo off
echo 正在复制”C:\a”文件夹的内容至”D:\b”文件夹下……
xcopy “C:\a” “D:\b” /e/I/d/h/r/y
echo 正在复制”C:\c”文件夹的内容至”D:\d”文件夹下……
xcopy “C:\c” “D:\d” /e/I/d/h/r/y
exit

保存该文本文件,修改文件名为X.bat 其中X可以任意命名。
打开”控制面板”—“计划任务”添加计划任务,计划任务里的执行目标为该批处理文件,设定在什么时候执行,我们可以设置为每天的00:00执行此批处理,这样每天就会执行该备份,让我们的文件永远有备份,再也不会为文件丢失而发愁了。

备注: 代码里的双引号(“”)以内的内容是文件夹路径,widows平台需要这样使用,可以根据实际情况修改,前面是需要备份的文件夹路径,后面是备份文件夹路径。如果需要备份更多的文件夹只需要多个xcopy 后面的格式和代码中相同,不要忘记两个路径之间有一个空格。

参数说明:
/e:拷贝所有子目录,包括空子目录;
/I: 如果目标文件或目录不存在且拷贝的文件数多于一,则假设目标为目录;
/d:只拷贝文件日期与在目标文件后的文件(即修改过的源文件)
/h:同时拷贝隐藏文件和系统文件
/r:拷贝并覆盖只读文件
/y: 复制文件审核设置(不显示已有文件覆盖确认)

以上参数可以根据需要添加,推荐都加上最好。
下面就根据上面的代码扩展更多应用。
比如远程备份文件夹,给文件夹以日期命名。
下面给大家来讲解:
远程备份文件夹需要远程共享了文件夹
如果已经共享了该文件夹我们只需要修改代码中的需要备份的文件夹路径就可以了

例如:我需要远程定期备份远程主机上的”a”文件夹,代码如下:

@echo off
echo 正在复制主机192.168.0.2的”a”文件夹的内容至”D:\b”文件夹下……
xcopy “\\192.168.0.2\a” “D:\b” /e/I/d/h/r/y
exit

其他和上面方法一样,保存为.bat文件,添加计划任务就行了。
如果我想以日期的形式保存文件夹,而且每天都有一个备份,那么我可以这样。

@echo off
echo 正在复制主机192.168.0.2的”a”文件夹的内容至”D:\b”文件夹下……
xcopy “\\192.168.0.2\a” “D:\%te%\” /e/I/d/h/r/y
exit

这样就可以为每天的备份放到每个以日期命名的文件夹里了
其中/e参数可以不要,因为每天备份都是以一个新的文件夹开始的,那么就没有文件日期的问题了。