如何排除使用xcopy复制某些文件?

时间:2015-05-01 20:13:37

标签: command-line copy-paste xcopy

我正在尝试将文件夹从一个位置复制到网络位置。但我想排除某些文件夹被复制。

:: time and date stamp YYYYMMDD, HHMMSS and YYYY-MM-DD_HH-MM-SS
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set datestamp=%dt:~0,8%
set timestamp=%dt:~8,6%
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%

set stamp=%YYYY%-%MM%-%DD%T%HH%-%Min%-%Sec%
mkdir "\\serv1\b$\Script Backup\%stamp%"
XCOPY C:\source "\\serv1\b$\Script Backup\%stamp%" /S

此xcopy命令会将整个C:\ source复制到网络位置。但我想排除当前在C:\ source

中的以下指挥

我想排除以下文件夹

C:\source\dba
C:\source\staging
C:\source\testing

我该怎么做?

1 个答案:

答案 0 :(得分:1)

根据Product Documentation - Xcopy

  

/ exclude:filename1 [+ [filename2]] [+ [filename3]]:指定包含字符串的文件列表。

和(强调补充):

  

在每个文件的单独行中列出每个字符串。如果列出的任何字符串与要复制的文件的绝对路径的任何部分匹配,则该文件将从复制过程中排除。例如,如果指定字符串" \ Obj \",则排除Obj目录下的所有文件。如果指定字符串" .obj",则排除所有扩展名为.obj的文件。

因此,创建一个文件(例如exclude.txt)以包含:

XCOPY C:\source "\\serv1\b$\Script Backup\%stamp%" /S /exclude:exclude.txt

并指示 / exclude:参数来引用它:

{{1}}