从Windows批处理中的多个文件夹中复制文件

时间:2013-09-09 10:22:47

标签: windows batch-file xcopy

我正在尝试使用Windows批处理命令将文件复制到新文件夹,但有些东西无效。我不知道我做错了什么。

这有效:

xcopy E:\folder\*.wav E:\wav\

但是因为我有很多foldernames和foldernames,我想使用这个命令为每个文件夹执行此操作:

xcopy E:\*\*.wav E:\wav\

但现在它说:

File not found - *.wav
0 File(s) copied

我该怎么做?

2 个答案:

答案 0 :(得分:1)

从命令行(无批处理):

for /d %F in (e:\*) do @if /i "%F" neq "e:\wav" 2>nul xcopy "%F\*.wav" "e:\wav"

以上只会复制根级文件夹中的文件。如果您想要整个驱动器中的所有.wav个文件,那么您需要:

for /r "e:\" %F in (.) do @if /i "%F" neq "e:\wav\." 2>nul xcopy "%F\*.wav" "e:\wav"

如果将命令放在批处理文件中,则加倍百分比。

请注意,不同文件夹中共享相同名称的不同文件会发生冲突 - 只有一个文件会在\ wav文件夹中存活。

答案 1 :(得分:0)

我做了一些搜索和尝试,这就是我想出来的。

for /D %%d in (E:\*) do (
    for %%f in (%%d\*.wav) do (
        xcopy %%f E:\wav\
    )
)