如何批量复制文件夹中没有其他文件夹的文件?

时间:2018-12-31 13:07:42

标签: batch-file cmd

我具有以下文件夹结构:

Folder1
  -Folder2
  -File1
  -File2
  -File3

我已尝试以下批处理脚本将所有内容复制到 Folder1

echo d | xcopy "Folder1\*.*" "DestinationFolder"/f /s /y /r

但是我只需要复制 File1,File2,File3 。需要忽略 Folder2 。我对如何实现这一目标一无所知。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

如果Folder2为空,则/S将起作用,
但是由于您的命令中有/s,所以我想它不是空的。

所以使用这个:

echo \Folder2\>__tmp4Exclude__
echo d | xcopy "Folder1\*.*" "DestinationFolder" /f /s /y /r /EXCLUDE:__tmp4Exclude__
del __tmp4Exclude__

__tmp4Exclude__是一个临时文件,被创建为包含要在复制时排除的文件列表。

来自xcopy /?

  /EXCLUDE:file1[+file2][+file3]...
               Specifies a list of files containing strings.  Each string
               should be in a separate line in the files.  When any of the
               strings match any part of the absolute path of the file to be
               copied, that file will be excluded from being copied.  For
               example, specifying a string like \obj\ or .obj will exclude
               all files underneath the directory obj or all files with the
               .obj extension respectively.

答案 1 :(得分:0)

无需使用xcopy复制正义文件! xcpoy通常用于 复制目录树。

因此,请改用copy。您可以这样做:

copy "Folder1\*.*" "Destination\"

可能您可能需要使用/(-)Y选项:

  

/Y禁止提示您确认要覆盖现有目标文件。
   /-Y提示您确认要覆盖现有的目标文件。

来自copy /?copy帮助页面)