Robocopy:将父文件夹内的子目录中的所有文件复制到新文件夹

Robocopy:将父文件夹内的子目录中的所有文件复制到新文件夹

我进行了一些谷歌搜索,尽管这似乎是一个非常简单的过程,但我一直无法找到可行的代码。

我有一个文件夹,里面有几个子文件夹,子文件夹里有文件。我想将所有文件移动到一个没有任何目录结构的新文件夹中,这样我就可以一次查看所有文件,而不必逐个文件夹查看。

非常感谢您提供的任何帮助。提前致谢。

答案1

此批处理文件将源子文件夹中的所有文件复制到一个文件夹,并在子文件夹结构中存在同名文件时重命名这些文件:

@echo off

set Source=Test
set Destiny=Banana

if not exist "%Source%" exit
if not exist "%Destiny%" md "%Destiny%"

for /f "delims=" %%a in ('dir /s /b /a-d "%Source%\*.*"') do if not exist "%Destiny%\%%~nxa" (move "%%a" "%Destiny%\") else (
                                                                                                                            set Contador=1
                                                                                                                            call :Rename "%%~a"
                                                                                                                           )

popd
exit
    
:Rename
set /a Contador+=1
if exist "%Destiny%\%~n1 (%Contador%).%~x1" (goto :Rename) else (move "%~1" "%Destiny%\%~n1 (%Contador%).%~x1")
goto :EOF

答案2

帖子中的一些建议 如何使用 Robocopy 从文件夹树中复制文件并删除所有文件夹?

  • 在命令提示符 (CMD) 中,将当前文件夹设置为源文件夹(使用cd)并输入以下命令:

    for /r %f in (*) do @copy "%f" target
    
  • 指定启动目录:

    for /r FolderA %f in (*) do @copy "%f" target
    

相关内容