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

时间:2013-04-21 18:09:47

标签: batch-file cmd file-management

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

find FOLDERPATH -type f -name '*.xml' -exec mv -i {} FOLDERPATH \;

然而,我似乎找不到能以同样方式发挥作用的东西。 XCOPY看起来很有前途,但它不会只复制文件夹,它会复制整个结构,因此我得到了这些我不想要的子目录。有人有任何其他建议吗?

2 个答案:

答案 0 :(得分:4)

这将从CMD提示符开始。在您希望将文件移动到的文件夹中运行它,它将处理该文件夹中的子目录。

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

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

这将在批处理文件中起作用。

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

答案 1 :(得分:0)

试试这个:

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