一次惨痛教训让我写了个Windows定期备份文件脚本_windows server 备份脚本

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


参数如下:




| 参数 | 说明 |
| --- | --- |
| /W | 显示以下消息,并在开始复制文件之前等待响应: **按任意键开始复制文件 ()** |
| /p | 提示确认是否要创建每个目标文件。 |
| /c | 忽略错误。 |
| /v | 在写入目标文件时验证每个文件,以确保目标文件与源文件相同。 |
| /q | 禁止显示 `xcopy` 消息。 |
| /f | 复制时显示源和目标文件名。 |
| /l | 生成要复制的文件列表,但不主动复制文件。 |
| /G | 当 *目标* 不支持加密时,创建解密的目标文件。 |
| /d [:MM-DD-YYYY] | 仅复制指定日期或之后更改的源文件。 如果未包含 *MM-DD-YYYY* 值,`xcopy`则 复制比现有*目标*文件更新的所有*源文件*。 此命令行选项允许更新已更改的文件。 |
| /U | 从仅*存在于目标*上的*源*复制文件。 |
| /i | 如果 *source* 为目录或包含通配符且目标不存在, `xcopy` 则假定 *destination* 指定目录名称并创建新目录。然后, `xcopy` 将所有指定的文件复制到新目录中。 默认情况下, `xcopy` 会提示指定目标是文件还是目录。 |
| /s | 复制目录和子目录,除非它们为空。 如果省略 **/s**,可在 `xcopy` 单个目录中工作。 |
| /e | 复制所有子目录,即使它们为空。 将 **/e** 与 **/s** 和 **/t** 命令行选项一起使用。 |
| /t | 复制子目录结构 (,即树) ,而不复制文件。 若要复制空目录,必须包含 **/e** 命令行选项。 |
| /k | 复制文件并保留 *目标* 文件上的只读属性(如果 *源文件* 上存在)。 默认情况下, `xcopy` 删除只读属性。 |
| /r | 复制只读文件。 |
| /h | 复制具有隐藏和系统文件属性的文件。 默认情况下, `xcopy` 不会复制隐藏的文件或系统文件 |
| /a | 仅复制设置了存档文件属性的 *源文件* 。 **/a** 不会修改源文件的存档文件属性。 |
| /m | 复制设置了存档文件属性的 *源文件* 。 与 \*\*/a \*\*不同, **/m** 关闭源中指定的文件中的存档文件属性。 |
| /n | 使用 NTFS 短文件或目录名称创建副本。 将文件或目录从 NTFS 卷复制到 FAT 卷时,或者当 FAT 文件系统命名约定 (*目标文件系统上*需要 8.3 个字符) 时,需要 **/n**。 destinatio\*文件系统可以是 FAT 或 NTFS。 |
| /o | 复制文件所有权和自由访问控制列表 (DACL) 信息。 |
| /x | 复制文件审核设置和系统访问控制列表 (SACL) 信息 (暗示 **/o**) 。 |
| /Y | 取消提示,确认是否要覆盖现有目标文件。 |
| /-Y | 提示确认是否要覆盖现有目标文件。 |
| /z | 在可重启模式下通过网络复制。 |
| /b | 复制符号链接而不是文件。 此参数是在 Windows Vista® 中引入的。 |
| /j | 在不缓冲的情况下复制文件。 建议用于非常大的文件。 此参数已添加到 Windows Server 2008 R2 中。 |
| /compress | 在文件传输过程中请求网络压缩。 |
| /? | 在命令提示符下显示帮助。 |


**关于 xcopy 的一些使用指南**


* 使用 `/z`


加上 `/z` 参数表示可以在重启的模式下通过网络进行复制


如果你在复制阶段,网络断开了,则连接会在重新建立连接之后恢复,加了`/z` 参数还能够**显示每个文件完成复制操作的百分比**


* 复制加密文件


如果在复制加密文件过程中碰到不支持 EFS 的 volume,会报错


你需要先将文件解密,然后复制,之后再重新加密;又或者可以将加密文件复制到支持 EFS 的 volume


* 追加文件


如果想要追加文件,把 Destination 指定成单个文件,但 source 是指定多个文件(使用通配符 or file1+file2+file3 格式)


* Destination 默认值


如果省略 Destination,xcopy 则会将文件复制到当前目录


* 提示指定 Destination 是文件还是目录


如果你的 Destination 不包含现有的目录,而且没有以反斜杠结尾,系统就会提示你



Does specify a file name or directory name on the target(F = file, D = directory)?


如果希望将一个或多个文件复制到某个文件,请按 F;如果希望将一个或多个文件复制到目录,请按 D


如果你不想这条提示出现,可以加上 `/i` 参数禁止显示此消息


如果 source 是多个文件或目录,则会导致 `xcopy` 假定目标为目录


### 正文


在了解了 xcopy 之后,就正式开始脚本的编写吧!


首先我们需要知道你笔记的路径,我笔记的路径是存放在`D:\studynote`下,而我笔记上面的图片的存放路径却是在`C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images`下


其次定义变量



#源笔记路径
set src_file=D:\studynote

#源图片路径
set src_imgs=C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images

#目标笔记路径
set des_file=E:\typora_backup\typora-%date:0,4%%date:5,2%%date:~8,2%\studynote

#目标图片路径
set des_images=E:\typora_backup\typora-%date:0,4%%date:5,2%%date:~8,2%\images


其中`%date:~0,4%%date:~5,2%%date:~8,2%`表示加上当前日期


具体原理如下:


在 Windows cmd 命令行窗口执行`date`命令后这个环境变量的值为


![在这里插入图片描述](https://img-blog.csdnimg.cn/ed1f7c6b947849eab0fbb537ce6f50ba.png)



> 
> %date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符(结果是 2023,即年份)
> 
> 
> %date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符(结果是03,月份)
> 
> 
> %date:~8,2% 表示指针从左向右偏移8位,然后从偏移处开始提取2位字符(结果是07,日份)
> 
> 
> 


接下来我们使用 xcopy 命令



#复制笔记
xcopy %src_file% %des_file% /e/I

#复制笔记中的图片
xcopy %src_imgs% %des_images% /e/I


点击保存,后缀名改成 bat,然后执行,就可以看到备份成功了!


![在这里插入图片描述](https://img-blog.csdnimg.cn/18e84f3cb3d04b848f2340151297af67.png)  


### 最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

### 资料预览

给大家整理的视频资料:

![](https://img-blog.csdnimg.cn/img_convert/51c6dd49c908b539cdc606199e5d9cd4.png)

给大家整理的电子书资料:

  

![](https://img-blog.csdnimg.cn/img_convert/dc748648fbcb2ceed78f54a9aec1d6e8.png)



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**


**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值