批處理(Bat)批量解壓文件夾并提取及合并文件
工作或者學(xué)習(xí)中,有時候需要從多個壓縮文件夾中提取多個文件夾的文件,此時若是手動解壓文件夾并逐個從解壓后的文件夾復(fù)制,則較為費時費力,此時可以利用批處理的便捷性來批量處理這些目標(biāo)文件夾,并且提取到文件夾中的文件。
如下圖所示,有1.rar和2.rar兩個壓縮文件夾,每個文件夾下還有子文件夾和文件,子文件夾里面也有文件,需要提取所有文件夾下的含OV538字符串的文件。
上圖市=是壓縮文件夾1.rar中的文件,2.rar壓縮文件中也是類似的情況。
此時,可以新建Test demo.txt文本文件,將下述代碼復(fù)制到文本中,并將文件后綴改成.bat即可。然后雙擊腳本即可開始運行,打開解壓界面,需要shift鍵批量選中待解壓文件,然后點擊提取,確定,等待解壓結(jié)束,解壓完成后關(guān)閉解壓文件窗口,腳本會繼續(xù)運行,直至運行結(jié)束。(復(fù)制代碼到文本中,為避免腳本運行錯誤建議去掉所有注釋字段)
@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 ::倒計時2s exit ::退出cmd命令
腳本運行結(jié)果如下,成功地將所有文件夾下的含OV538字符串地txt文件提取到Target file文件夾中,并且將所有txt文件還合并成Target.txt文件,便于后續(xù)批量對提取的txt文件結(jié)果進(jìn)行處理。
上述代碼實際上時調(diào)用了7-Zip這個解壓文件,并利用其批量解壓縮,然后用for遍歷所有文件夾及子文件夾,提取目標(biāo)文件,最后還將所有txt文件合并成一個新的txt文件。
到此這篇關(guān)于批處理(Bat)批量解壓文件夾并提取及合并文件的文章就介紹到這了,更多相關(guān)批處理批量解壓文件夾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
批處理統(tǒng)計詞頻實現(xiàn)代碼(統(tǒng)計重復(fù)行的數(shù)量/每行重復(fù)出現(xiàn)的次數(shù))
這篇文章主要介紹了批處理統(tǒng)計詞頻實現(xiàn)代碼(統(tǒng)計重復(fù)行的數(shù)量/每行重復(fù)出現(xiàn)的次數(shù)),需要的朋友可以參考下2021-09-09DOS比較運算符(LSS,LEQ,GTR,GEQ,EQU,NEQ)
這篇文章主要介紹了DOS比較運算符(大于、小于、等于)等,主要是用于判斷文件日期大小等,方便后續(xù)操作2021-09-09批處理僅允許在指定電腦computername上執(zhí)行的代碼
這篇文章主要介紹了批處理僅允許在指定電腦computername上執(zhí)行的代碼,需要的朋友可以參考下2023-07-07