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 覆盖。

例子:html

XCOPY E:\vstsworkspace\source\web\resource C:\home\site\web\ /s /e /h /r /k /y /d /exclude:exclude.txt>tempTips.txt web

上面命令实现:网络

一、把C:\home\site\web\ 下的文件增量复制到E:\vstsworkspace\source\web\resourceide

二、而且是剔除exclude.txt的。post

三、把复制的文件名都写到tempTips.txt文件中加密

 

例如:spa

       要将d:\xly下全部文件备份到e:\xly1,可使用以下命令:.net

  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

出处:http://www.javashuo.com/article/p-mcctbxsi-mq.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\b.xml
不少次,但xcopy老是问我“文件名仍是目录名”
能够这样经过管道来作
echo f | xcopy /y a.xml .\pics\b.xml

 

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

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

我本身写了项目的备份脚本:

echo off

set sour=D:\_john\LocalSvn\TestSVN\TestProject\
set dest=\\192.168.1.50\Share\Cares-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:\_john\LocalSvn\TestSVN\trunk\
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:\_john\LocalSvn\DownloadProject\OAUS源码.rar" "%dest%OAUS源码.rar" %para% >> %xcopyLog%


echo 复制完成,请查看执行的日志文件:%xcopyLog%
pause
增长双引号防止路径中有空格,其中c:\exclude.txt的内容以下:
\packages\
\.vs\
\obj\
\bin\

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

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

相关文章
相关标签/搜索