在 Windows 中,是否有方法(内置或使用第三方程序)将子文件夹的所有内容批量移动到上一级?换句话说,是否有方法可以删除选定的子文件夹,同时保留其内容?我想从以下位置开始:
Folder
Subfolder1
File1
Subfolder2
File2
到:
Folder
File1
File2
在一个单一的过程中。
答案1
您可以在命令提示符中使用 for 循环:
for /r %i in (*) do @move "%i" .
是的,它会尝试将当前目录中的文件移回当前目录,但这不会造成任何损害。请确保在要将文件移动到的层次结构的顶部运行它。从其他位置运行它将产生非常不良的影响。
如果您希望运行它,以便不必位于某个目录中,您可以输入路径:
for /r C:\path %i in (*) do @move "%i" "C:\path"
替换C:\path
为所有文件将移动到的顶级目录的位置。如果您希望在批处理脚本中运行它,请更改变量以包含另一个百分号:
for /r C:\path %%i in (*) do @move "%%i" "C:\path"
删除所有空子目录(从 cmd):
for /d %i in (C:\path\*) do @rmdir /s /q "%i"
来自批次:
for /d %%i in (C:\path\*) do @rmdir /s /q "%%i"
答案2
一个简单的方法(在 XP 中)是右键单击根文件夹并选择“搜索”,然后不输入任何条件并按“搜索”。搜索结果将是文件夹和子文件夹中内容的平面列表。然后,您可以将搜索结果拖到另一个文件夹中,所有文件都将从其文件夹中“删除”。
在 XP 之后的 Windows 版本中,您只需在资源管理器窗口右上角的搜索框中输入搜索词,然后将结果复制到另一个文件夹即可实现相同的效果。
答案3
到目前为止有很多好建议。你也可以使用一切。右键单击相关父文件夹,选择“搜索所有内容”。这将给出文件夹中所有内容的列表。您可以从这里执行移动操作,也许在按文件类型排序后,或者在搜索中包含文件类型以排除文件夹。
答案4
你可以得到总指挥官,这是一个共享软件文件管理程序,进入您的文件夹,按Ctrl + B
(意思是分支所有子目录 - 它将显示此目录和所有子目录中的所有文件),选择所有内容并复制到您想要的位置(即更高的一个文件夹)。