• XCopy命令实现增量备份


    复制文件和目录树。
    
    XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                               [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                               [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]
                               [/EXCLUDE:file1[+file2][+file3]...]
    
      source       指定要复制的文件。
      destination  指定新文件的位置和/或名称。
      /A           仅复制有存档属性集的文件,
                   但不更改属性。
      /M           仅复制有存档属性集的文件,
                   并关闭存档属性。
      /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
                   如果没有提供日期,只复制那些
                   源时间比目标时间新的文件。
      /EXCLUDE:file1[+file2][+file3]...
                   指定含有字符串的文件列表。每个字符串
                   在文件中应位于单独的一行。如果任何
                   字符串与复制文件的绝对路径的任何部分相符,
                   则排除复制该文件。例如,
                   指定如 obj 或 .obj 的字符串会分别
                   排除目录 obj 下面的所有文件或带有
                   .obj 扩展名的所有文件。
      /P           创建每个目标文件之前提示你。
      /S           复制目录和子目录,不包括空目录。
      /E           复制目录和子目录,包括空目录。
                   与 /S /E 相同。可以用来修改 /T。
      /V           验证每个新文件的大小。
      /W           提示你在复制前按键。
      /C           即使有错误,也继续复制。
      /I           如果目标不存在,且要复制多个文件,
                   则假定目标必须是目录。
      /Q           复制时不显示文件名。
      /F           复制时显示完整的源文件名和目标文件名。
      /L           显示要复制的文件。
      /G           允许将加密文件复制到
                   不支持加密的目标。
      /H           也复制隐藏文件和系统文件。
      /R           覆盖只读文件。
      /T           创建目录结构,但不复制文件。不
                   包括空目录或子目录。/T /E 包括
                   空目录和子目录。
      /U           只复制已经存在于目标中的文件。
      /K           复制属性。一般的 Xcopy 会重置只读属性。
      /N           用生成的短名称复制。
      /O           复制文件所有权和 ACL 信息。
      /X           复制文件审核设置(隐含 /O)/Y           取消提示以确认要覆盖
                   现有目标文件。
      /-Y          要提示以确认要覆盖
                   现有目标文件。
      /Z           在可重新启动模式下复制网络文件。
      /B           复制符号链接本身与链接目标。
      /J           复制时不使用缓冲的 I/O。推荐复制大文件时使用。
    
    开关 /Y 可以预先在 COPYCMD 环境变量中设置。
    这可能被命令行上的 /-Y 覆盖。

    例子:

    XCOPY E:vstsworkspacesourceweb esource C:homesiteweb /s /e /h /r /k /y /d /exclude:exclude.txt>tempTips.txt 

    上面命令实现:

    1、把C:homesiteweb 下的文件增量复制到E:vstsworkspacesourceweb esource

    2、并且是剔除exclude.txt的。

    3、把复制的文件名都写到tempTips.txt文件中

    例如:

           要将d:xly下所有文件备份到e:xly1,可以使用如下命令:

      xcopy d:xly*.*/s/h e:xly1

      又比如,要恢复e:xly1下2006年6月1日以后的文件至D:xly,就可使用如下命令:

      xcopy e:xly1*.*/s/h/d:2006-06-01 d:xly

    出处:https://www.cnblogs.com/pachongshangdexuebi/p/5051977.html

    =======================================================================

    --注释:从c:websites拷贝到c:copy目录(注c:copy则不会提示是目录还是文件)排除c:Exclude.txt中的
    xcopy c:websites c:copy /s /e /y /EXCLUDE:c:Exclude.txt
     
    --注释:不包含以.obj 、 .sdf 、 .pdb 、 .rar 、.config 、结尾的文件,也不包含Common.js文件
    --c:Exclude.txt
    .obj  
    .sdf  
    .pdb
    .rar
    .config
    Common.js
    @ECHO OFF 
    echo '开始拷贝文件夹及文件?按任意键继续'
    pause
    xcopy c:websites c:copy /s /e /y /EXCLUDE:c:Exclude.txt
    pause

    出处:https://blog.csdn.net/smartsmile2012/article/details/78123534

    =======================================================================

    常见问题:

    xcopy在执行的时候,有时总是询问是文件名还是目录名

    例如:我需要运行类似
    xcopy /y a.xml .pics.xml
    很多次,但xcopy总是问我“文件名还是目录名”
    可以这样通过管道来做
    echo f | xcopy /y a.xml .pics.xml

    出处:https://www.cnblogs.com/moonlight-zjb/p/3588150.html

    ==============================================

    我自己写了项目的备份脚本:

    echo off
    
    set sour=D:\_johnLocalSvnTestSVNTestProject
    set dest=\192.168.1.50ShareCares-bak20190519
    set para= /e /s /y /h /r /exclude:c:exclude.txt
    set dir=Camera,PVG.Lib,TestCache,TestConfig,TestDesignPattern,TestEntityFramework,TestHook,TestLog4net,TestSqliteAndLog4net,TestThread,TestTypeAndReflection,TestVideo
    set xcopyLog=c:xcopy.log
    
    echo xcopy log > %xcopyLog%
    
    for %%i in (%dir%) do (
    echo xcopy %sour%%%i to %dest%%%i
    echo xcopy %sour%%%i to %dest%%%i >> %xcopyLog%
    xcopy %sour%%%i %dest%%%i %para% >> %xcopyLog%
    )
    
    set sour=D:\_johnLocalSvnTestSVN	runk
    set dir=AutoUpdate,PVG_DownloadFiles,TestIBM.MQ,WarningAlert
    for %%i in (%dir%) do (
    echo xcopy %sour%%%i to %dest%%%i
    echo xcopy %sour%%%i to %dest%%%i >> %xcopyLog%
    xcopy %sour%%%i %dest%%%i %para% >> %xcopyLog%
    )
    
    
    
    rem 复制零散的单个目录或文件
    echo 复制零散的单个目录或文件
    echo 复制零散的单个目录或文件 >> %xcopyLog%
    echo d | xcopy "E:Bat脚本" "%dest%Bat脚本" %para% >> %xcopyLog%
    echo f | xcopy "D:\_johnLocalSvnDownloadProjectOAUS源码.rar" "%dest%OAUS源码.rar" %para% >> %xcopyLog%
    
    
    echo 复制完成,请查看执行的日志文件:%xcopyLog%
    pause
    增加双引号防止路径中有空格,其中c:exclude.txt的内容如下:
    packages
    .vs
    obj
    in

    这里的代码很简单,你应该能看懂,我就不解释了

    ==========================================

  • 相关阅读:
    Eureka与ZooKeeper 的比较(转)
    springcloud 与分布式系统(转载)
    jvm 分代回收算法通俗理解
    关于JVM调优
    Java常用的数据结构
    mysql数据库引擎(转载)
    java的堆栈通俗理解
    ArrayList 的实现原理
    hashMap 源码解读理解实现原理和hash冲突
    Sklearn库例子——决策树分类
  • 原文地址:https://www.cnblogs.com/mq0036/p/10890190.html
Copyright © 2020-2023  润新知