前言
说实话在写这篇文章的时候,咸鱼不禁又想起了那件男默女泪的往事 我喜欢做笔记,我觉得好记性不如烂笔头,所以在我的学生以及职业生涯阶段,我用过四款笔记应用——Onenote、语雀、印象笔记、Typora 其中我个人觉得体验最好的非 Typora 莫属了 在 2022 年的时候,由于 Typora 收费,我就寻思网上找个破解版的用用(白嫖这一块嗷) 没想到一顿操作下来,我误删了现在的软件,更加令人崩溃的是,我当时 Typora 文件是存放在程序的目录之下!!! 如下图所示: 我是完全无视掉下面那个 DO NOT ADD FILES HERE 于是当我意识到我辛辛苦苦写下的笔记全部都没有了的时候,那一瞬间我崩溃了 赶紧上某鱼看看有没有帮忙恢复数据的服务,尽管到最后数据是恢复了,但内容全是乱码(再度崩溃) 经过这么一件惨案,咸鱼痛定思痛,于是决定写一个定期自动备份文件的 Windows 脚本 在写这个脚本之前,我们先来学习一下脚本当中用到的命令 xcopy 微软官方介绍:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopyCopies 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 | 在文件传输过程中请求网络压缩。 |
/? | 在命令提示符下显示帮助。 |
- 使用 /z
- 复制加密文件
- 追加文件
- Destination 默认值
- 提示指定 Destination 是文件还是目录
正文
在了解了 xcopy 之后,就正式开始脚本的编写吧! 首先我们需要知道你笔记的路径 我笔记的路径是存放在D:\studynote下 而我笔记上面的图片的存放路径却是在C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images下 其次定义变量 其中%date:~0,4%%date:~5,2%%date:~8,2%表示加上当前日期 具体原理如下: 在 Windows cmd 命令行窗口执行date命令后这个环境变量的值为 %date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符(结果是 2023,即年份) %date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符(结果是03,月份) %date:~8,2% 表示指针从左向右偏移8位,然后从偏移处开始提取2位字符(结果是07,日份) 接下来我们使用 xcopy 命令 点击保存,后缀名改成 bat,然后执行,就可以看到备份成功了! 那有小伙伴可能会说,现在只是实现了备份功能,定期备份怎么实现呢 这里我们用 Windows 的任务计划来实现 打开任务计划程序,选择右上角的创建基本任务 设置备份时间为每个月的周一早上九点 选择执行脚本 这样一个定时备份的程序就完成了!
感谢阅读,喜欢作者就动动小手[一键三连],这是我写作最大的动力 标签:文件,Windows,备份文件,源文件,xcopy,复制,date,惨痛教训,目录 From: https://www.cnblogs.com/edisonfish/p/17190612.html