Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在windows批处理中从多个文件夹复制文件_Windows_Batch File_Xcopy - Fatal编程技术网

在windows批处理中从多个文件夹复制文件

在windows批处理中从多个文件夹复制文件,windows,batch-file,xcopy,Windows,Batch File,Xcopy,我正在尝试使用windows批处理命令将文件复制到新文件夹,但某些操作不起作用。我不知道我做错了什么 这项工作: xcopy E:\folder\*.wav E:\wav\ 但是因为我有许多FolderName和FolderName,所以我想使用以下命令为每个文件夹执行此操作: xcopy E:\*\*.wav E:\wav\ 但现在它说: File not found - *.wav 0 File(s) copied 我该怎么做呢?我做了一些搜索和尝试,这就是我想到的 for /D %%

我正在尝试使用windows批处理命令将文件复制到新文件夹,但某些操作不起作用。我不知道我做错了什么

这项工作:

xcopy E:\folder\*.wav E:\wav\
但是因为我有许多FolderName和FolderName,所以我想使用以下命令为每个文件夹执行此操作:

xcopy E:\*\*.wav E:\wav\
但现在它说:

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

我该怎么做呢?

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

for /D %%d in (E:\*) do (
    for %%f in (%%d\*.wav) do (
        xcopy %%f E:\wav\
    )
)
从命令行(无批处理):

以上操作将仅复制根级别文件夹中的文件。如果要从整个驱动器中获取所有
.wav
文件,则需要:

for /r "e:\" %F in (.) do @if /i "%F" neq "e:\wav\." 2>nul xcopy "%F\*.wav" "e:\wav"
如果将命令放入批处理文件中,则将百分比加倍


请注意,不同文件夹中共享相同名称的不同文件将发生冲突-您的\wav文件夹中只保留一个文件。

很好,但您不想复制
e:\wav
中已有的文件。另外,您不需要第二个FOR循环。谢谢!
2>nul
是什么意思?如果文件夹不包含.wav文件,它会隐藏错误消息
for /r "e:\" %F in (.) do @if /i "%F" neq "e:\wav\." 2>nul xcopy "%F\*.wav" "e:\wav"