DOS/BAT

关注公众号 jb51net

关闭
首页 > 脚本专栏 > DOS/BAT > 批处理批量解压文件夹

批处理(Bat)批量解压文件夹并提取及合并文件

作者:Script_Man

工作或者学习中,有时候需要从多个压缩文件夹中提取多个文件夹的文件,本文主要介绍了批处理(Bat)批量解压文件夹并提取及合并文件,具有一定的参考价值,感兴趣的可以了解一下

工作或者学习中,有时候需要从多个压缩文件夹中提取多个文件夹的文件,此时若是手动解压文件夹并逐个从解压后的文件夹复制,则较为费时费力,此时可以利用批处理的便捷性来批量处理这些目标文件夹,并且提取到文件夹中的文件。

如下图所示,有1.rar和2.rar两个压缩文件夹,每个文件夹下还有子文件夹和文件,子文件夹里面也有文件,需要提取所有文件夹下的含OV538字符串的文件。

测试脚本文件夹

在这里插入图片描述

在这里插入图片描述

上图市=是压缩文件夹1.rar中的文件,2.rar压缩文件中也是类似的情况。

此时,可以新建Test demo.txt文本文件,将下述代码复制到文本中,并将文件后缀改成.bat即可。然后双击脚本即可开始运行,打开解压界面,需要shift键批量选中待解压文件,然后点击提取,确定,等待解压结束,解压完成后关闭解压文件窗口,脚本会继续运行,直至运行结束。(复制代码到文本中,为避免脚本运行错误建议去掉所有注释字段)

@echo off

setlocal enabledelayedexpansion   ::设置变量延迟

set "rar=C:\Program Files\7-Zip\7zFM.exe"  ::设置7-Zip问解压文件路径

"%rar%" x-y "%%i" "%%~dpi">nul   ::选中待解压文件提取文件

echo @@@@@  Please wait a moment @@@@@

:: for循环遍历含OV538字符的文件名称
for /r %%a in (OV538*) do (   

::若不存在Target file文件夹则新建该文件夹 
	if not exist "Target file" md "Target file"  
	
::将遍历到的文件复制到Target file文件夹中	 
		xcopy/y "%%a" "Target file\" >nul    
);

::将当前路径下Target file的所有txt文件内容合并到Target.txt文件中
copy ".\Target file\*.txt" ".\Target file\Target.txt" >nul  

echo @@@@@  Done  @@@@@

time /t 2>nul   ::倒计时2s

exit	::退出cmd命令

脚本运行结果如下,成功地将所有文件夹下的含OV538字符串地txt文件提取到Target file文件夹中,并且将所有txt文件还合并成Target.txt文件,便于后续批量对提取的txt文件结果进行处理。

结果界面1

结果界面2

上述代码实际上时调用了7-Zip这个解压文件,并利用其批量解压缩,然后用for遍历所有文件夹及子文件夹,提取目标文件,最后还将所有txt文件合并成一个新的txt文件。

到此这篇关于批处理(Bat)批量解压文件夹并提取及合并文件的文章就介绍到这了,更多相关批处理批量解压文件夹内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文