码字,杂谈

windows下自动备份文件

之前写了一个自动备份mysql的脚本,现在还需要一个自动备份文件的脚本,所以就看了一下windows的命令,就有了下面的脚本内容:

rem ***** Resource backup start *****
@echo off

xcopy "C:\Resource" "Z:\resource_backup" /S /D /Y

@echo on
rem ***** Resource backup end *****

很简单,就是一个xcopy命令,需要一个源路径,一个目标路径,其他都是可选参数。这里用了:

  • /S 复制所有非空的目录和子目录,如果没有这个参数,则只复制源根目录。
  • /D 这个参数可以在后面跟它自己的日期参数(如:/D:mm-dd-yyyy),表示复制指定日期或指定日期之后更改的文件。如果没有提供日期,则只复制那些源时间比目标时间新的文件。
  • /Y 遇到目标文件存在的情况,直接覆盖而不提示确认。因为是自动备份,所以这点应该很重要。

当然,xcopy还有很多其他参数,下面一一说一下。

Xcopy的语法:

xcopy srcPath [destPath] [/W] [/P] [/C] [/V] [/Q] [/F] [/L] [/G] [/D[:mm-dd-yyyy]] [/U] [/I] [/S] [/E] [/T] [/K] [/R] [/H] [{/A |/M}] [/N] [/O] [/X] [/exclude:FileName1[+[FileName2]][+[FileName3]] [{/Y | /-Y}] [/Z]

Xcopy的参数们

srcPath

源路径是必选的,可以是文件,也可以是文件夹。最好是绝对路径,当然,也可以是相对路径(虽然这样不太好)。

destPath

目标路径是可选的,但是如果不给该参数,则会直接拷贝到当前文件夹下,这样等于没有有效操作。

《windows下自动备份文件》

/W

在开始复制前,等待响应。

《windows下自动备份文件》

/P

提示确认是否要创建每个目标文件

《windows下自动备份文件》

/C

忽略所有错误,否则报错。

/V

写入文件时验证每个文件。

/Q

不显示消息。

/F

显示源文件和目标文件名。

/L

显示复制的文件列表。

/G

创建已经解密的目标文件,允许将没有经过加密的文件复制到不支持加密的目标。

/D[:mm-dd-yyyy]

表示复制指定日期或指定日期之后更改的文件。如果没有提供日期,则只复制那些源时间比目标时间新的文件。

/U

只复制目标文件目录中存在的文件。

/I

如果目标不存在,又在复制一个以上的文件,则假定目标一定是一个目录。如果没有该项,则会提示让用户选择这是一个 文件/文件夹

/E

复制所有子目录和空目录,该参数必须与 /T/S使用。

/S

复制所有非空的目录和子目录,如果没有这个参数,则只复制源根目录。

/T

只复制目录和子目录结构,不复制文件,如果要复制空目录,则必须包含 /E参数。

/K

复制文件时保留只读文件的只读属性,默认情况下,xcopy将删除这些属性。

/R

复制只读文件。

/H

复制隐藏文件和系统文件。默认情况下xcopy并不复制这些文件。

{/A | /M}

/A:只复制有存档属性集的文件,但不改变属性。
/M:只复制有存档属性集的文件,并关闭存档属性。

/N

使用NTFS短文件名创建文件。

/O

复制文件所有权与随机访问控制列表信息。

/X

复制文件审核设置和系统访问控制列表信息。

/exclude:FileName1[+[FileName2]][+[FileName3]

指定排除的字符串的文件列表,例如,设置了 obj,则obj目录下所有文件或带有.obj 扩展名的文件都将不会被复制。

{/Y | /-Y}

/Y:遇到目标文件存在的情况,直接覆盖而不提示确认。
/-Y:需要提示才能继续。

/Z

用重新启动模式复制网络文件。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注