由于人力、财力、智力等一系列问题,虽然公司有专门的信息技术部,但我们票券组的同事仍在使用Excel表格来作记录,真是可悲又可哀啊!可怜去年还是使用记事本来记录票券资料,今年好不容易进步了一点点,就是建个Excel表格来处理数据,在同事的努力下,已完相对较完善了。但问题还是不少,比如偶尔出错、记录丢失、误删除……等乱七八糟的问题。这不,昨天又向我抱怨数据表丢失了一个,我不寒而粟,一想到服务器上的目录谁都有读写权限,如果哪位同事不小心一个Del所有文件,后果将是无法估量的。
我相信仍然还有许多公司跟我们公司一样:IT靠得住,母猪会上树。既然IT靠不住,那她们只好求助我这个伪技术啦!说了这么多的废话,其实就是想提供一个小弟多日的研究成果,自动备份Excel表格的解决方案。
初步设想建个BAT文件来处理备份这种事情,但既然是备份,肯定不能只保存一个版本,我的计划是让电脑随时可以执行Backup。于是如果将备份下来的文件名添加上日期成了我头痛的事情,在网上找了很多变量都不适合,如果要结合VB那就太麻烦了点。
既然使用日期来区分备份文件不行,那就使用随机数吧!隐约记得“%RANDOM%
”可以使用。当这一问题成功解决之后,新的问题是如何区分备份的版本?于是我又加条命令实现备份日志——log。
备份这事是没问题了,但每次都要手动执行,肯定比较麻烦。于是我想到自动执行,想到自动的时候就想到了组策略。不过不好意思,公司的电脑全部只有Users组的权限,于是这条路被堵了。折腾来折腾去后我发现,可以使用Windows的计划任务功能来实现(之前从没使用过这破玩意)。好了,每天下班之前,计算机会自动将远程服务器上的文件备份到本地。调试的时候,阿珍问我如果备份的文件名换了是不是就没用了?而且只能备份一个文件吗?解决方案就是使用Winrar的压缩命令找包整个目录,于是再改进就有了下面的代码:
1 | @REM 在下面填写备份路径和文件名 |
将上面的文件保存为Back.bat
,然后在D盘建立Backup
目录,在该目录下建立/log/bakckup.log
文件。然后修改你要备份的源目录路径即可运行,我懒了点,其实可以将所有的设置成为变量,统计在文件开始的时候声明。
目前我选择的是压缩方式,但有一个问题点仍没找到解决方案。就是只要被备份的文件处于打开状态,Winrar就压缩不了。所以我将计划任务设置成每个开机前执行Back.bat
,如有更好解决方法,欢迎指教。