zoukankan      html  css  js  c++  java
  • 【定时操作】之XCOPY

    碰到个客户,需要在早上9点上线一样产品,没办法,真没起,想来想去想到了windows的任务计划程序,但是貌似那货也没有复制粘贴功能,只能跑个程序,好吧,只好自己再折腾个XCOPY,今早起来,一切OK,所以来这里分享下。

    一、Demo

      XCOPY "C:xcopytest_1*" "C:xcopytest_2" /S /Y

      这句很简单,从源地址拷到新地址,全部复制,并且直接覆盖不提示。

    二、官方文档

      2.1  网址

        微软官方:http://technet.microsoft.com/zh-cn/library/cc771254

      2.2  语法

      Xcopy <Source>[<Destination>][] /w[] /p[] /c[] /v[] /q[] /f[] /l[] /g[/d [: 年-月-日]][] /u[/i][/s [/e]][] /t[] /k[] /r[] /h[{/a | /m}][n] /[] /o[] /x[/ 排除: FileName1 [+ [FileName2]] [+ [没有]] [{/y | /-y}] [/z] [/b] [/j]

      2.3  参数

    参数 说明

    <Source>

    必需。 指定要复制的文件的名称和位置。 该参数必须包含驱动器或路径。

    [<Destination>]

    指定要复制的文件的目标位置。 该参数可以包含驱动器号和冒号、 目录名、 文件名或它们的组合。

    /w

    将显示以下消息,并在开始复制文件之前将等待您的响应:

    按任意键可开始复制文件

    /p

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

    /c

    忽略错误。

    /v

    写入目标文件,以确保目标文件与源文件相同时,请验证每个文件。

    /q

    取消xcopy消息的显示。

    /f

    在复制时将显示源和目标文件的名称。

    /l

    显示要复制的文件的列表。

    /g

    当目标不支持加密,请创建解密的目标文件。

    /d [: 年-月-日]

    副本的源或指定日期之后更改的文件。 如果不包含年-月-日值, xcopy复制比现有目标文件更新的所有源文件 Destination 此命令行选项允许您更新已更改的文件。

    /u

    将文件复制仅存在于目标

    /i

    如果是一个目录,或包含通配符,目标不存在, xcopy将假定目标指定目录的名称和创建新的目录。 然后, xcopy将所有指定的文件复制到新目录。 默认情况下,通过xcopy会提示您指定目标是文件或目录。

    /s

    将复制目录和子目录,除非它们为空。 如果省略/sxcopy工作单个目录中。

    /e

    复制所有子目录,即使它们为空)。 /E /E 使用/s/t命令行选项。 /t

    /t

    子目录结构 (树),不复制文件的副本。 要复制空目录,必须包含/e命令行选项。

    /k 选项

    复制文件,并且如果存在的源代码文件保留目标文件的只读属性。 默认情况下,通过xcopy删除只读属性。

    /r

    将只读文件。

    /h

    将文件复制包含隐藏和系统文件属性。 默认情况下,通过xcopy没有复制隐藏文件或系统文件

    /a

    具有其归档副本仅源代码文件的文件属性集。 /a不修改源文件的存档文件属性。 有关如何使用属性来设置存档文件属性的信息,请参阅其他参考

    /m

    设置存档文件属性的文件。 /A /A ,与/m关闭存档文件属性中指定的源中的文件。 有关如何使用属性来设置存档文件属性的信息,请参阅其他参考

    /n

    通过使用 NTFS 短文件或目录的名称创建副本。 /n是必需的文件或目录从 NTFS 卷复制到 FAT 卷或者当目标文件系统上需要 FAT 文件系统命名约定 (即 8.3 字符)。 目标 目标 文件系统可以是 FAT 或 NTFS)。

    /o

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

    /x

    复制文件审核设置和系统访问控制列表 (SACL) 信息 (隐含/o)。

    / exclude:FileName1[+[FileName2][+[FileName3](…)]

    指定文件的列表。 必须指定至少一个文件。 每个文件将包含搜索字符串,其中每个文件中单独的一行上的字符串。

    当要复制的文件的绝对任何的路径部分匹配的任何字符串时,该文件将被复制的 excuded。 例如,如果指定字符串, obj .obj 将排除obj目录下的所有文件或具有.obj扩展名的所有文件。

    /y

    禁止提示确认要覆盖现有的目标文件。

    /-y

    会提示您确认要覆盖现有的目标文件。

    /z

    可重启模式中通过网络复制。

    /b

    将复制文件而不是符号的链接。 此参数是在 Windows Vista ® 中引入的。

    /j

    将文件复制不进行缓冲。 建议使用非常大的文件。 此参数中添加了在 Windows Server ® 2008 R2 引入。

    /?

    在命令提示符下显示帮助。

      2.4  备注

        • 使用/v 

          Windows XP 和 Windows Server 2003 家族产品的不使用此命令。 它仅用于保留兼容性与现有 MS-DOS 文件,但由于此功能是自动的因此在命令行上有任何影响。 

        • 使用/z 

          如果您在复制阶段中 (例如,如果服务器脱机切断连接) 的连接丢失,它会继续后您重新建立连接。 /z同时会显示每个文件完成的复制操作的百分比。 

        • 使用/y COPYCMD 环境变量中。 

          您可以使用/y COPYCMD 环境变量中。 您可以通过在命令行上使用/-y来覆盖该命令。 默认情况下,会提示您覆盖,除非xcopy从批处理脚本内运行。 

        • 复制加密的文件 

          将加密的文件复制到一个不支持 EFS 的结果中出现错误。 首先解密文件或将文件复制到支持 EFS 的卷。 

        • 添加文件 

          要附加的文件,请指定一个文件的目标,但源的多个文件 (即,通过使用通配符或 file1 + 文件 2 + 文件 3 格式)。 

        • 目标的默认值 

          如果省略目标, xcopy命令将文件复制到当前目录。 

        • 指定目标文件或目录 

          如果目标不包含现有的目录,并且不以反斜杠 () 结尾,则会出现以下消息: 
          没有 <Destination>在目标系统上指定的文件名或目录名 (F = 文件,D = 目录) 吗?

            如果所需的文件或文件复制到一个文件,请按 F。 如果所需的文件或文件复制到的目录,请按 D。 

            使用/i命令行选项,这会导致xcopy假定目标为目录,如果源是多个文件或目录,您可以取消此消息。 

        • 使用xcopy命令来设置存档属性的目标文件 

          Xcopy Xcopy 命令创建具有存档属性设置,文件,无论是否在源文件中设置此属性。 有关文件属性和属性的详细信息,请参阅其他参考 

        • 比较xcopydiskcopy 

          如果您有包含子目录中的文件的磁盘,并且您要将其复制到具有不同的格式的磁盘,则使用xcopy命令而不是diskcopy 因为diskcopy命令会将磁盘磁道地复制,源和目标磁盘必须具有相同的格式。 Xcopy Xcopy 命令没有此要求。 使用xcopy ,除非您需要完整的磁盘图像副本。 

        • Xcopy的退出代码 

          要处理由xcopy返回退出代码,请在批处理程序中的如果命令行上使用错误级别参数。 处理退出代码,如果使用的批处理程序的一个示例,请参阅其他参考 下表列出了每个退出代码和说明。 
    退出代码说明

    0

    文件复制没有错误。

    1

    不找到要复制的任何文件。

    2

    用户按下 CTRL + C 将终止xcopy

    4

    出现初始化错误。 没有足够的内存或磁盘空间,或在命令行上输入了无效的驱动器的名称或无效的语法。

    5

    磁盘写入时出错。

       2.5  示例

      

        要从驱动器 A 将所有文件和子目录 (包括所有空的子目录) 都复制到驱动器 B,请键入:

        xcopy 答: b: /s /e

        若要在上面的示例包括任何系统或隐藏的文件,请按如下所示添加/h命令行选项:

        xcopy 答: b: /s /e /h

        要更新 Reports 目录中的文件与自 1993 年 12 月 29 日以来已更改的文件 Rawdata 目录中键入:

        xcopy 
    awdata 
    eports /d:12-29-1993年

        要更新在上一示例中,日期,无论 Reports 中存在的所有文件,请键入:

        xcopy 
    awdata 
    eports /u

        若要获得前一个命令复制文件的列表 (也就是说,而不复制文件),类型:

        xcopy 
    awdata 
    eports /d:12-29-1993年 /l >xcopy.out

        文件 xcopy.out 中列出了每个要复制的文件。

        要复制目录 \PublicAddress 网络驱动器 h: 上的 Customer 目录和所有子目录,请保留只读属性中,并上高:,类型创建一个新文件时,系统会提示:

        xcopy customer h:publicaddress /s /e /k /p

        要发出上一个命令,请确保xcopy创建 Address 目录 (如果它不会存在,并禁止显示消息的情况下会出现您创建一个新目录中,添加/i命令行选项,如下所示:

        xcopy customer h:publicaddress /s /e /k /p /i

        您可以创建批处理程序执行xcopy操作,并使用if批处理命令时出现错误时处理退出代码。 例如,以下的批处理程序使用可替换的xcopy源和目标参数:

        @ echo offrem COPYIT。BAT 传输所有文件中的所有子目录 ofrem 源驱动器或目录 (%1) destinationrem 驱动器或目录 (%2) xcopy %1 %2 /s /eif 错误级别 4 转到 lowmemoryif 错误级别 2 转到 abortif 错误级别 0 转至退出: lowmemoryecho 内存不足,无法复制文件 orecho 无效的驱动器或按 CTRL + C 结束复制 operation.goto 退出的 syntax.goto 命令行退出: abortecho: 退出

        若要使用该批处理程序将 C:Prgmcode 目录及其子目录中的所有文件都复制到驱动器 B,请键入:

        copyit c:prgmcode b:

      命令解释程序将C:Prgmcode%1 %1b:替换为%2,然后使用xcopy/e /e/s命令行选项。 Xcopy Xcopy 遇到错误,如果批处理程序读取的退出代码转到适当的等级 IF语句中指定的标签,显示相应的信息并退出批处理程序。

  • 相关阅读:
    CodeIgniter框架对数据库查询结果进行统计
    PHP的内存回收(GC)
    使用ajax请求后端程序时,关于目标程序路径问题
    JavaScript中的各种X,Y,Width,Height
    Qt编写气体安全管理系统7-设备监控
    Qt编写气体安全管理系统6-地图监控
    Qt编写气体安全管理系统5-数据监控
    Qt编写气体安全管理系统4-通信协议
    Qt编写气体安全管理系统3-用户模块
    Qt编写气体安全管理系统2-界面框架
  • 原文地址:https://www.cnblogs.com/maomaoroc/p/3513516.html
Copyright © 2011-2022 走看看