Windows批處理壓縮包內(nèi)加密pdf文件解密的操作步驟
前言
一個朋友跟我抱怨說,有沒有好的方法處理40多個壓縮包內(nèi)的加密pdf文檔,并自動壓縮回壓縮包內(nèi)?之前10幾個壓縮包的時候還覺得工作量還行,20幾個加密pdf文檔也就1個小時的事情,現(xiàn)在是40多個壓縮包,90個加密文檔,一個一個這樣干太枯燥了。
一、批處理是什么?
批處理就是可以對文件進行批量處理,而不需要一個一個的去對文件執(zhí)行相同的操作。Window下的批處理一般有幾種方式,第一種是直接在CMD的Dos界面執(zhí)行批處理命令,第二種就是保存文件為bat格式,然后雙擊執(zhí)行文件就可以自動執(zhí)行文件內(nèi)的所有批處理命令,類似于Python文件。
二、使用步驟
1.同時登錄多個微信批處理
工作中經(jīng)常會出現(xiàn)私人有一個微信,公司又有一個微信,所以想在一臺電腦上同時登錄私人和公司的微信,工作和生活兩不誤。同時登錄多個微信有多個方法。
第一個方法是,將鼠標(biāo)指針移到微信圖標(biāo)并選中,然后連續(xù)按Enter鍵幾次以上,就可以登錄多個微信賬號,要求是賬號必須在手機登錄,并進行掃碼。
第二個方法就是可以通過批處理的方式進行登錄。
批處理的操作步驟如下:
(1)新建一個bat文件。
新建一個txt文件,然后將后綴名txt改成bat就可以。
(2)編輯bat文件,記事本打開文件然后將以下代碼復(fù)制進去
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::執(zhí)行第一個微信 start /d "D:\ProgramFiles\Tencent\WeChat\" WeChat.exe ::執(zhí)行第二個微信 start /d "D:\ProgramFiles\Tencent\WeChat\" WeChat.exe exit
紅色部分需要替換成你自己的微信安裝目錄。
start命令,/d表示啟動目錄。整個命令的格式如下圖。
2.多個壓縮包加密pdf文件解密
因為我用的pdf解密軟件(PDFPasswordRemover)雖然支持批處理,但官方文檔沒有給出如何在Windwos系統(tǒng)下批處理調(diào)用方式,它的批處理方式是將所有pdf文件拖入軟件框內(nèi)就可以批量處理進行解密操作,所以我寫的批量處理操作需要將所有壓縮包內(nèi)的pdf文件解壓后拷貝到同一個文件夾內(nèi),有知道的小伙伴可以在評論區(qū)告訴我。
(1)解壓所有壓縮包
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::查找當(dāng)前文件夾內(nèi)所有的.zip文件并使用WinRAR進行解壓 for %%i in (*.zip) do (D:\ProgramFiles\WinRar\WinRAR.exe x -y %%i) pause
注意:執(zhí)行這個命令需要安裝WinRAR軟件,并且需要更改紅色的路徑。
目前這個命令可行的是WinRar軟件,360Zip是不行的,這樣寫會變成壓縮命令。
以下是for命令的格式和參數(shù)。
(2)將所有解壓出來的pdf文件拷貝到一個文件夾內(nèi)。
/r參數(shù)是表示遍歷當(dāng)前目錄以及所有子目錄。
/y參數(shù)是表示目標(biāo)文件存在同名文件時,默認覆蓋掉此文件。
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::創(chuàng)建一個目標(biāo)路徑變量tarDir set tarDir=C:\Output\pdf ::路徑不存在則創(chuàng)建一個 if not exist %tarDir% (mkdir %tarDir%) ::查找當(dāng)前路徑以及子目錄下的所有以.pdf結(jié)尾的文件,覆蓋拷貝到目標(biāo)路徑 for /r %%i in (*.pdf) do (copy /y %%i %tarDir% > nul) pause
copy的命令格式和參數(shù)。
這兩個命令文件可以合并成一個,執(zhí)行完第一步之后,加入此步的for行命令。
(3)批量解密pdf文件
將上一步的C:\Output\pdf文件夾內(nèi)所有pdf拖入下面的軟件中,
上面軟件的輸出默認在C:\Output文件夾
(4)批量拷貝解密后的pdf文件回壓縮包目錄
解密后的pdf文件默認會添加_Password_Removed.pdf后綴
也就是我們拷貝回去的時候,只需要拷貝后綴是_Password_Removed.pdf的文件,而原來的pdf文件名稱是去掉_Password_Removed,所以我們需要判斷之前壓縮包解壓出來的目錄,是否存在原文件,如果存在則拷貝后綴是_Password_Removed.pdf的解密文件,不存在則跳過。
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::設(shè)置延遲變量 setlocal EnableDelayedExpansion ::創(chuàng)建變量srcDir并賦值 set srcDir=C:\Output ::創(chuàng)建變量tarDir并賦值bat文件所處目錄 set tarDir=%cd% ::外層for循環(huán)遍歷文件名包含_Password_Removed的文件 for /f "delims=" %%i in ('dir %srcDir% /b *_Password_Removed*') do ( ::對文件名進行處理,并去除_Password_Removed ::echo %%i set var=%%i set var=!var:_Password_Removed=! ::echo %%i !var! ::遍歷壓縮包目錄的子目錄,并判斷子目錄是否包含原文件 for /f %%j in ('dir %tarDir% /ad/b/s') do ( ::echo - set cur="%%j\!var!" ::echo !cur! ::原文件存在則拷貝外層解密文件 if exist !cur! ( echo ---%%i %%j & copy /y %srcDir%\%%i %%j > nul) ) ) pause
記得需要把bat文件放置到原先的壓縮包目錄。
/f參數(shù)表示對目錄以及子目錄進行遍歷循環(huán)時,可以打開文件,并將文件里面的內(nèi)容讀取到內(nèi)存,你可以對這個文件的內(nèi)容再進行遍歷,目前這里還不需要,只需要文件名就可以了。
dir表示指向目錄。/b舍棄標(biāo)題與摘要內(nèi)容,不加這個窗口會多出很多打印。
/b /a:d選項是指定顯示所有具有該屬性的文件目錄。
/s 查找當(dāng)前目錄以及所有子目錄下的文件。
set var=!var:_Password_Removed=!
這條語句就是將_Password_Removed賦值為空,如果想改成其它的,直接在修改=后面就可以了。
copy /y選項是存在默認處理方式是覆蓋掉文件,不加這個會一直彈窗讓你選擇。
(5)批量壓縮目錄
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::查找當(dāng)前文件夾內(nèi)所有的目錄,并將其壓縮成目錄名.zip文件,壓縮完不刪除原文件目錄 for /d %%i in (*) do (D:\ProgramFiles\WinRar\WinRAR.exe a -k -r -s -m1 %%i.zip %%i) pause
WinRAR批處理命令。
a :備份所有文件。-k :鎖定壓縮文件。-r:備份目錄和子目錄。-s :創(chuàng)建固實壓縮文件。
-m<n>:設(shè)置壓縮模式,從底到高壓縮率越高:-m0不壓縮方式儲存;-m1最快;-m2較快;-m3標(biāo)準(默認);-m4較好;-m5最好。
總結(jié)
以上就是對批處理命令的理解了,批處理對于重復(fù)性工作的幫助還是挺大的,能夠大大提高工作的效率。
相關(guān)文章
批處理應(yīng)用:根據(jù)文件內(nèi)容進行重命名操作
批處理應(yīng)用:根據(jù)文件內(nèi)容進行重命名操作...2007-04-04讓bat批處理以管理員權(quán)限運行的實現(xiàn)方法
這篇文章主要介紹了讓bat批處理以管理員權(quán)限運行的實現(xiàn)方法,需要的朋友可以參考下2020-08-08批處理設(shè)置windows服務(wù)器的代碼ThecSafe1.9.4
一個既是服務(wù)器安全設(shè)置工具,也是一個學(xué)習(xí)批處理非常好的教程。雖然入手看是難了點,只有帶著問題去學(xué)習(xí)才能真正的去了解。2008-01-01