假设所有文件名都不同,如何在 Windows 7 中展平文件夹?

19 windows

例如,假设我有以下文件夹层次结构:

Folder1
   File1
   Folder2
      File2
   Folder3
      File3
      Folder4
         File4
Run Code Online (Sandbox Code Playgroud)

我想执行一些导致以下结果的命令:

Folder1
   File1
   File2
   File3
   File4
Run Code Online (Sandbox Code Playgroud)

或类似的东西。我对 Windows 不是很熟悉,所以我希望答案中尽可能详细。

Hen*_*jer 37

最简单的方法是进入公共根文件夹并搜索所有文件(即搜索*)。找到所有文件后,标记所有文件,按 Ctrl + X 并再次导航到公共根文件夹。现在按 Ctrl + V 将所有文件粘贴到根文件夹中。完成后,删除所有子目录。

我不知道这是否可以作为批处理作业完成。

  • 我喜欢它的简单性,但是我用 40k 文件尝试了它,它使资源管理器进程崩溃。 (5认同)

UpT*_*eek 19

当我需要展平一个大的层次结构(在我的例子中是 pngs)时,我最终使用了这个 powershell 方法:

Get-ChildItem C:\sourcefolder -Recurse -Filter "*.png" | Copy-Item -destination C:\destinationfolder\
Run Code Online (Sandbox Code Playgroud)

  • 对于展平,也许 Move-Item 更适合? (2认同)

Pre*_*gha 1

使用批处理脚本(我突然想到):

查找FOR命令

第一行将所有文件从子目录移动到根目录第二行删除子文件夹

for /f %f in ('dir "c:\folder\*" /s/b/a-d') do if not %~ff"=="c:\folder" move "%f" "c:\folder"
for /f %f in ('dir "c:\folder\*" /s/b/ad') do if not "%~ff"=="c:\folder" rd /s/q "%f" 
Run Code Online (Sandbox Code Playgroud)