我进行了一些谷歌搜索,尽管这似乎是一个非常简单的过程,但我一直无法找到可行的代码。
我有一个文件夹,里面有几个子文件夹,子文件夹里有文件。我想将所有文件移动到一个没有任何目录结构的新文件夹中,这样我就可以一次查看所有文件,而不必逐个文件夹查看。
非常感谢您提供的任何帮助。提前致谢。
答案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