在保留其内容的同时删除子文件夹?

Geo*_*ald 5 windows file-management

在 Windows 中,有没有办法(内置或使用第 3 方程序)将子文件夹的所有内容向上移动一个级别?换句话说,一种在保留其内容的同时摆脱选定子文件夹的方法?我想从:

Folder
  Subfolder1
    File1
  Subfolder2
    File2
Run Code Online (Sandbox Code Playgroud)

到:

Folder
  File1
  File2
Run Code Online (Sandbox Code Playgroud)

在一个过程中。

Joh*_*n T 7

您可以在命令提示符中使用 for 循环:

for /r %i in (*) do @move "%i" .
Run Code Online (Sandbox Code Playgroud)

是的,它会尝试将当前目录中的文件移回当前目录,但这不会造成任何伤害。确保在位于要将文件移动到的层次结构顶部时运行它。从另一个位置运行它会产生非常不希望的效果。

如果您希望运行它以便不必在某个目录中,您可以输入路径:

for /r C:\path %i in (*) do @move "%i" "C:\path"
Run Code Online (Sandbox Code Playgroud)

替换C:\path为所有文件将移动到的顶级目录的位置。如果您希望在批处理脚本中运行它,请更改变量以包含另一个百分号:

for /r C:\path %%i in (*) do @move "%%i" "C:\path"
Run Code Online (Sandbox Code Playgroud)

删除所有空子目录(从 cmd):

for /d %i in (C:\path\*) do @rmdir /s /q "%i"
Run Code Online (Sandbox Code Playgroud)

从批次:

for /d %%i in (C:\path\*) do @rmdir /s /q "%%i"
Run Code Online (Sandbox Code Playgroud)