批处理文件移动所有子文件夹文件然后删除空子文件夹?

时间:2014-01-21 00:12:28

标签: batch-file command-line

我有一个包含许多子文件夹的文件夹,每个子文件夹都包含不同的文件:

C:/folder/subfolder1/file1.jpg,
C:/folder/subfolder2/file2.jpg,
C:/folder/subfolder3/file3.jpg, 
etc.

如何创建将子文件夹中的文件移动到文件夹的批处理文件,然后删除空的子文件夹。

即。运行bat文件后,文件夹结构应如下所示:

C:/folder/file1.jpg
C:/folder/file2.jpg
C:/folder/file3.jpg 
etc.

3 个答案:

答案 0 :(得分:7)

试试这个

@echo off
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" .
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"

答案 1 :(得分:0)

这将遍历%root%(C:\文件夹)中的每个文件夹,并将内容复制到%root% -

@echo off
set root=c:\folder
for /f %%a in ('dir /b /ad %root%') do (
    for /f %%b in ('dir /b %root%\%%a') do move "%root%\%%a\%%b" "%root%\%%b"
    rmdir "%root%\%%a"
)

答案 2 :(得分:0)

我用它作为批处理文件从当前文件夹中的子文件夹移动所有文件,然后删除空文件夹。

rem Copy all files from subfolders in the current folder to the current folder.
for /R %cd% %%G IN (*.*) DO move /Y "%%G"
rem Move all directories into a temp folder in the current folder.
for /D %%I in (*) do move /y %%I %cd%\temp
rem Remove the temp folder including empty folders.
rmdir /s/q %cd%\temp