设为首页 加入收藏

TOP

一次惨痛教训让我写了个Windows定期备份文件脚本(一)
2023-07-23 13:26:11 】 浏览:51
Tags:Windows 文件脚

前言

说实话在写这篇文章的时候,咸鱼不禁又想起了那件男默女泪的往事
 
我喜欢做笔记,我觉得好记性不如烂笔头,所以在我的学生以及职业生涯阶段,我用过四款笔记应用——Onenote、语雀、印象笔记、Typora
 
其中我个人觉得体验最好的非 Typora 莫属了
 
 
?
 
 
在 2022 年的时候,由于 Typora 收费,我就寻思网上找个破解版的用用(白嫖这一块嗷
 
没想到一顿操作下来,我误删了现在的软件,更加令人崩溃的是,我当时 Typora 文件是存放在程序的目录之下!!!
 
如下图所示:
 
 
?
 
 
我是完全无视掉下面那个 DO NOT ADD FILES HERE
 
于是当我意识到我辛辛苦苦写下的笔记全部都没有了的时候,那一瞬间我崩溃了
 
赶紧上某鱼看看有没有帮忙恢复数据的服务,尽管到最后数据是恢复了,但内容全是乱码(再度崩溃)
 
 
 
 
 
 
?
 
经过这么一件惨案,咸鱼痛定思痛,于是决定写一个定期自动备份文件的 Windows 脚本
 
在写这个脚本之前,我们先来学习一下脚本当中用到的命令
 
xcopy
 
微软官方介绍:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy
 
Copies files and directories, including subdirectories
 
可以看到,xcopy 用于复制文件和目录,包括子目录
 
?
 
 
参数如下:
 
参数
说明
/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 则会将文件复制到当前目录
&n
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇为什么C盘总是自己爆满 下一篇Windows10激活专业版免费简单有效

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目