xcopy目录和子目录递归,并按扩展名仅过滤文件名

时间:2010-06-01 18:39:53

标签: batch-file filtering filenames xcopy

以下是我现在所拥有的:

xcopy "c:\projects\SampleProject" "c:\temp\copytest" /E /H /EXCLUDE:elist.txt

除了通过扩展名过滤文件名外,它完成了我需要的所有工作。

例如:从*.exe和子目录中复制所有c:\temp\copytest个文件。

怎么做?

3 个答案:

答案 0 :(得分:38)

我碰巧也需要这个,并且发现如果你想将具有特定类型的xcopy文件保存到新文件夹,保留当前的文件夹结构,你只需要这样做

xcopy [SourcePath]*.mp3 [DestinationPath]  /sy
  

/ s:复制目录和子目录,除非它们为空。如果   你省略/ s,xcopy在一个目录中工作。

     

/ y :禁止提示您确认是否要覆盖   现有目标文件

Documentation

答案 1 :(得分:3)

类似的东西:

@echo off
setlocal
set DIR=
set OUTPUTDIR=C:\Documents and Settings\<username>\Desktop\sandbox1\output
for /R %DIR% %%a in (*.mp3) do xcopy "%%a" "%OUTPUTDIR%"

见(http://technet.microsoft.com/en-us/library/bb490909.aspx

答案 2 :(得分:0)

我需要相同的过程(复制带有排除过滤器的文件夹),并使用@pollirrata的示例。

有一件事我不得不提到,为了复制文件夹,我需要为目标目录指定一个反斜杠以禁止提示问题。

所以我以以下语法结尾:

xcopy SourceFolder DestinationFolder\ /EXCLUDE:exclude.txt

exclude.txt文件的内容:

.mp3

仅复制我使用的具有特定扩展名(例如*.exe)的文件

xcopy SourceFolder\*.exe DestinationFolder\