XCopy命令实现增量备份

摘要:
Destination指定新文件的位置和/或名称/EXCLUDE:file1[+file2][+file3]…指定包含字符串的文件列表。每个字符串都应该在文件中的单独一行/C即使有错误也继续复制。常规XCopy重置只读属性/复制文件所有权和ACL信息/Y取消提示以确认是否要覆盖现有目标文件。开关/Y可以预先在COPYCMD环境变量中设置。这可能会被命令行上的/-Y覆盖。示例:XCOPYE:vstsworkspacesourcewebresourceC:homesiteweb/s/e/h/r/k/y/d/exclude:exclude。txt˃tempTips txt实现了以上命令:1.将C:\homesiteweb下的文件增量复制到E:vstsworkspacesourcewebresource2,并排除exclude.txt。
复制文件和目录树。

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

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

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

免责声明:文章转载自《XCopy命令实现增量备份》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第一章 绪论MongoDB文档操作(5)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

golang的安装后的文件目录解析

golang的安装是个比较有意思的问题首先我们要分清楚有goroot和gopath这两个环境变量。goroot是go语言安装的地方我的是在D:/go,这个不是非常重要。值得关注的是gopath,gopath一般默认安装在C:Users用户名go这个位置这里的目录结构是这样的。bin文件是存放go文件编译后的exe文件,src文件里的文件目录是这样的其中ne...

Linux基础知识(一)

    本篇主要介绍Linux操作系统相关知识以及其常用命令等。 一、操作系统的基本知识   一般而言,现代计算机计算机系统是一个复杂的系统,故若程序员需要掌握该系统的每一个细节例如如何通过代码去调用音响等这些事情,那可能不再编写代码了,这种情况会严重影响程序员的开发效率。 并且管理这些部件并加以优化使用,是一件极富挑战性的工作,于是,计算安装了一层软件(...

mount命令详解及常见问题汇总

一 、mount命令(用来挂载硬盘或镜像等) 用法:mount [-t vfstype] [-o options] device dir1、-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntf...

python文件运行报错:Error: Please select a valid Python interpreter

1、报错信息:报错:Error: Please select a valid Python interpreter如下图:  原因:把一个电脑写的python代码,打包到另一个电脑上解压后,导入pycharm运行。在pycharm导入源项目的时候没有选择运行Python的程序。可以通过选择python安装目录下的运行程序,来解决这个问题。 解决:1、更改...

Ansible-基础

Ansible架构 Inventory 主机清单,可以对主机分组 ansible-hoc ansible的命令,适用临时场景 ansible-playbook ansible是一个场景的集合,是YAML语言 被控端: 被管理的主机 连接协议:ansible是用的ssh协议,所以被控端不需要安装额外的agent,这也是 ansible-galaxy 连...

使用 Visual Studio Code 创建并运行 Transact SQL 脚本

原文:https://docs.microsoft.com/zh-cn/sql/tools/visual-studio-code/sql-server-develop-use-vscode?view=sql-server-ver15 适用于:SQL Server(所有支持的版本) - Linux 本文介绍如何为 Visual Studio Code 使...