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

这里有一个技术难点,即文件夹下包含子文件夹的嵌套。如果进行手动复制,并且要增加几百个文件夹,这样的操作会非常繁琐和耗时!
接下来,我将向大家介绍如何开发一款Windows的bat脚本程序,以自动化提取当前目录下的所有文件。

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

填写以下内容

@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


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


代码解释部分
@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 //暂停脚本执行,等待用户按任意键继续