批處理(Bat)批量解壓文件夾并提取及合并文件
工作或者學(xué)習(xí)中,有時(shí)候需要從多個(gè)壓縮文件夾中提取多個(gè)文件夾的文件,此時(shí)若是手動(dòng)解壓文件夾并逐個(gè)從解壓后的文件夾復(fù)制,則較為費(fèi)時(shí)費(fèi)力,此時(shí)可以利用批處理的便捷性來批量處理這些目標(biāo)文件夾,并且提取到文件夾中的文件。
如下圖所示,有1.rar和2.rar兩個(gè)壓縮文件夾,每個(gè)文件夾下還有子文件夾和文件,子文件夾里面也有文件,需要提取所有文件夾下的含OV538字符串的文件。



上圖市=是壓縮文件夾1.rar中的文件,2.rar壓縮文件中也是類似的情況。
此時(shí),可以新建Test demo.txt文本文件,將下述代碼復(fù)制到文本中,并將文件后綴改成.bat即可。然后雙擊腳本即可開始運(yùn)行,打開解壓界面,需要shift鍵批量選中待解壓文件,然后點(diǎn)擊提取,確定,等待解壓結(jié)束,解壓完成后關(guān)閉解壓文件窗口,腳本會(huì)繼續(xù)運(yùn)行,直至運(yùn)行結(jié)束。(復(fù)制代碼到文本中,為避免腳本運(yùn)行錯(cuò)誤建議去掉所有注釋字段)
@echo off setlocal enabledelayedexpansion ::設(shè)置變量延遲 set "rar=C:\Program Files\7-Zip\7zFM.exe" ::設(shè)置7-Zip問解壓文件路徑 "%rar%" x-y "%%i" "%%~dpi">nul ::選中待解壓文件提取文件 echo @@@@@ Please wait a moment @@@@@ :: for循環(huán)遍歷含OV538字符的文件名稱 for /r %%a in (OV538*) do ( ::若不存在Target file文件夾則新建該文件夾 if not exist "Target file" md "Target file" ::將遍歷到的文件復(fù)制到Target file文件夾中 xcopy/y "%%a" "Target file\" >nul ); ::將當(dāng)前路徑下Target file的所有txt文件內(nèi)容合并到Target.txt文件中 copy ".\Target file\*.txt" ".\Target file\Target.txt" >nul echo @@@@@ Done @@@@@ time /t 2>nul ::倒計(jì)時(shí)2s exit ::退出cmd命令
腳本運(yùn)行結(jié)果如下,成功地將所有文件夾下的含OV538字符串地txt文件提取到Target file文件夾中,并且將所有txt文件還合并成Target.txt文件,便于后續(xù)批量對(duì)提取的txt文件結(jié)果進(jìn)行處理。


上述代碼實(shí)際上時(shí)調(diào)用了7-Zip這個(gè)解壓文件,并利用其批量解壓縮,然后用for遍歷所有文件夾及子文件夾,提取目標(biāo)文件,最后還將所有txt文件合并成一個(gè)新的txt文件。
到此這篇關(guān)于批處理(Bat)批量解壓文件夾并提取及合并文件的文章就介紹到這了,更多相關(guān)批處理批量解壓文件夾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
批處理統(tǒng)計(jì)詞頻實(shí)現(xiàn)代碼(統(tǒng)計(jì)重復(fù)行的數(shù)量/每行重復(fù)出現(xiàn)的次數(shù))
這篇文章主要介紹了批處理統(tǒng)計(jì)詞頻實(shí)現(xiàn)代碼(統(tǒng)計(jì)重復(fù)行的數(shù)量/每行重復(fù)出現(xiàn)的次數(shù)),需要的朋友可以參考下2021-09-09
DOS比較運(yùn)算符(LSS,LEQ,GTR,GEQ,EQU,NEQ)
這篇文章主要介紹了DOS比較運(yùn)算符(大于、小于、等于)等,主要是用于判斷文件日期大小等,方便后續(xù)操作2021-09-09
批處理僅允許在指定電腦computername上執(zhí)行的代碼
這篇文章主要介紹了批處理僅允許在指定電腦computername上執(zhí)行的代碼,需要的朋友可以參考下2023-07-07

