在windows批处理中从多个文件夹复制文件
我正在尝试使用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 %%
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"