如何从一堆多层乱嵌套的文件夹中,提取所有文件放在一起

如题所示,感觉应该有类似的软件,但是不知道如何去搜,所以只能求助大家啦~

如下图所示,就是文件和文件夹混在一起,如何把所有文件夹中的文件都提取出来。

感觉就是一个递归的问题,想问下有没有类似的成品软件,或者简单的方法呢

感谢了!

dopus可以做到 有混合模式可以列出所有文件 忽略文件夹树 TC XY这类第三方资源管理器都行应该,免费的可以试试XY

image

文件管理器搜索框里一个字符*搞定
把搜出来的除了文件夹之外的全选剪切粘贴,ok

5 Likes

everything 选择文件夹 把扩展名排序钩上然后应该可以,和楼上用windows自带搜索应该没啥区别

在everything搜索栏中输入:"待搜索路径\"即可

4 Likes

7zip 打开根文件夹目录,选择「查看」- 「平铺模式」

参见:

TotalCommander 按一下 ctrl+b 就全出来了

Quicker的一键解散动作

我觉得 XYplorer 很好用。

1 Like

多年前自己写过批处理 (.bat) 脚本,具体作用就是把所有文件从子目录移动到当前目录(默认模式),或者把特定文件从子目录移动到当前目录。具体源代码是如下,只要保存到txt文本,然后改后缀名为.bat的文件,就能双击运行了:

@echo off
echo warning! ALL FILES ARE NOT RESERVABLE! Be sure no files in any subfolder have the same name as others!
:all
cls
echo %cd%
echo all-file mode, ".single" to switch to single-file mode.
set /p ddc=what kind of file extension(s) would be except: 
if "%ddc%"==".single" goto single
for %%d in (%ddc%) do set .%%~d=exception
for /r "%CD%" %%i in (*) do if not defined %%~xi move "%%i" "%Cd%"
if "%ddc%"=="" for /d /r "%cd%" %%b in (*) do rd %%b
exit
:single
cls
echo %cd%
echo single-file mode, ".all" switch to all-file mode.
set /p gjc=The file extension that you want to transfer to current dir.: 
if "%gjc%"==".all" goto all
for %%a in (%gjc%) do (
	for /r "%CD%" %%i in (*.%%a) do (
		move "%%i" "%CD%"
	)
)
exit

请注意!

请确保所有子目录下的文件名不会与其他子目录的文件重名!例如存在C:\test\ddc\a.pdf,C:\test\dac\a.pdf, C:\test\dmc\d4c\a.pdf的情况下,不要在C:\test目录运行该脚本!因为运行后,你大概率会只获得一个a.pdf!在这个例子中,请确保所有子目录只有一个a.pdf,而其他原本名称为a.pdf的文件都改成其他名字!

默认为所有文件转移模式,输入:.single 切换为指定文件后缀名模式。同理,假若切换到指定后缀名模式后想回到所有文件转移模式,输入:.all,注意,英文单词前面有个点。而在输入后缀名这点上,不需要输入一个点 (例如:你想除了txt和pdf以外的所有文件都转移到当前目录,那么输入:txt pdf就好了。但想要切换模式,你只能输入.single。)

Q: 这个脚本的原作者是你吗?为啥用整个脚本都用英文编写?
A: 是我,没错。纯英文是为了规避编码问题。CMD和PowerShell都有某种编码问题,即默认编辑器是UTF-8的编码格式,但CMD只会以ANSI编码去阅读和执行批处理(.bat)文件。这样一来,带来的问题就是显示中文会乱码,除非手动切换文本的编码格式。本来就是只个小问题,解决了也没啥用,可我感觉解释起来很麻烦,与其让对方看到一堆乱码问我怎么回事和怎么解决,不如一开始就不用中文,斩草除根,所以写脚本这方面我就尽量用英文写了。

先做成压缩包

然后解压的时候,选择无路径,我演示的是7zip是这样,其他解压缩软件也是差不多的,有类似的无路径解压方法

这些文件有什么特征呢? 你需要的文件所在目录中还会有其他文件, 还是说这个顶级文件夹下的所有文件都是你需要的?

我用python写过一个,要是你没找到现成的回头踢我一脚我给你简单打个exe

补充一下,DOpus 要用平面视图:

平面视图的混合模式可以把所有文件夹和文件显示到同一层级。

另外 XYplorer 不是免费的,价格和 DOpus 差不多。

XY我印象里有个免费版本
dopus 有个混合(无文件夹)的模式直接列出所有文件 :rofl:我是特意绑定了一个快捷键的
image

之前确实是有免费版本,但是已经五年不更新了。

这个的确是最简单的,今天才发现233

有个小工具,忘了从哪得来的了,可以吧文件夹下所有文件夹结构清空,只保留文件到当前文件夹。链接: 百度网盘 请输入提取码 提取码: dfrm 复制这段内容后打开百度网盘手机App

2 Likes