如何一键批量提取所有文件夹的文件?
沧桑大侠
编辑于 2023年12月09日 13:17

观察下方图片,假设有一项任务,需要提取当前目录下所有文件,你会怎么做?

这里有一个技术难点,即文件夹下包含子文件夹的嵌套。如果进行手动复制,并且要增加几百个文件夹,这样的操作会非常繁琐和耗时!

接下来,我将向大家介绍如何开发一款Windows的bat脚本程序,以自动化提取当前目录下的所有文件。


教程部分

首先,我们在文件夹的空白处新建一个记事本。

填写以下内容

代码块
JavaScript
自动换行
复制代码
@echo off
setlocal enabledelayedexpansion

set "output_dir=%cd%\AllFiles"
mkdir "%output_dir%"

for /r %%i in (*) do (
    if not "%%~ni"=="%~nx0" (
        copy "%%i" "%output_dir%"
    )
)

echo All files have been collected in "%output_dir%".
pause
复制成功

另存为文件,需要注意,我们保存文件的后缀名需要是.bat

最后我们运行一下脚本程序,发现成功一键提取当前目录下所有文件了。

代码解释部分

代码块
JavaScript
自动换行
复制代码
@echo off  //关闭命令回显
setlocal enabledelayedexpansion  //启用延迟变量扩展

set "output_dir=%cd%\AllFiles"  //设置输出目录为当前目录下的AllFiles文件夹
mkdir "%output_dir%"  //创建输出目录

for /r %%i in (*) do (  //遍历当前目录及其子目录中的所有文件和文件夹
    if not "%%~ni"=="%~nx0" (  //如果文件名不等于脚本文件名(即不是脚本本身)
        copy "%%i" "%output_dir%"  //将文件复制到输出目录中
    )
)

echo All files have been collected in "%output_dir%".  //显示完成信息
pause  //暂停脚本执行,等待用户按任意键继续
复制成功