Batch file 递归地将文件移动到根文件夹

Batch file 递归地将文件移动到根文件夹,batch-file,cmd,file-management,Batch File,Cmd,File Management,与CMD相比,我更习惯于使用unixshell,我不确定如何让它工作。我有一个目录和其他几个包含.xml文件的子目录。我想将所有文件递归地移动到根目录。我知道在unix中,这是这样做的: find FOLDERPATH -type f -name '*.xml' -exec mv -i {} FOLDERPATH \; 然而,我似乎找不到同样有效的方法。XCOPY看起来很有希望,但它不仅复制文件夹,而且复制整个结构,因此我得到了这些我不再需要的子目录。有人有其他建议吗?试试这个: set FO

与CMD相比,我更习惯于使用unixshell,我不确定如何让它工作。我有一个目录和其他几个包含.xml文件的子目录。我想将所有文件递归地移动到根目录。我知道在unix中,这是这样做的:

find FOLDERPATH -type f -name '*.xml' -exec mv -i {} FOLDERPATH \;
然而,我似乎找不到同样有效的方法。XCOPY看起来很有希望,但它不仅复制文件夹,而且复制整个结构,因此我得到了这些我不再需要的子目录。有人有其他建议吗?

试试这个:

set FOLDERPATH=...
for /R "%FOLDERPATH%" %%f in (*.xml) do move "%%~ff" "%FOLDERPATH%"

这将在CMD提示符下工作。在要将文件移动到的文件夹中运行它,它将处理该文件夹中的子目录

它没有提供一种优雅地处理文件名冲突的机制

for /R /D %f in (*) do move "%f\*.xml" .
这将在批处理文件中工作

@echo off
for /R /D %%f in (*) do move "%%f\*.xml" .

在bash中,它是
mv-i/folderpath/***.xml/where
;)