Windows批處理壓縮包內(nèi)加密pdf文件解密的操作步驟
前言
一個(gè)朋友跟我抱怨說,有沒有好的方法處理40多個(gè)壓縮包內(nèi)的加密pdf文檔,并自動(dòng)壓縮回壓縮包內(nèi)?之前10幾個(gè)壓縮包的時(shí)候還覺得工作量還行,20幾個(gè)加密pdf文檔也就1個(gè)小時(shí)的事情,現(xiàn)在是40多個(gè)壓縮包,90個(gè)加密文檔,一個(gè)一個(gè)這樣干太枯燥了。
一、批處理是什么?
批處理就是可以對(duì)文件進(jìn)行批量處理,而不需要一個(gè)一個(gè)的去對(duì)文件執(zhí)行相同的操作。Window下的批處理一般有幾種方式,第一種是直接在CMD的Dos界面執(zhí)行批處理命令,第二種就是保存文件為bat格式,然后雙擊執(zhí)行文件就可以自動(dòng)執(zhí)行文件內(nèi)的所有批處理命令,類似于Python文件。
二、使用步驟
1.同時(shí)登錄多個(gè)微信批處理
工作中經(jīng)常會(huì)出現(xiàn)私人有一個(gè)微信,公司又有一個(gè)微信,所以想在一臺(tái)電腦上同時(shí)登錄私人和公司的微信,工作和生活兩不誤。同時(shí)登錄多個(gè)微信有多個(gè)方法。
第一個(gè)方法是,將鼠標(biāo)指針移到微信圖標(biāo)并選中,然后連續(xù)按Enter鍵幾次以上,就可以登錄多個(gè)微信賬號(hào),要求是賬號(hào)必須在手機(jī)登錄,并進(jìn)行掃碼。
第二個(gè)方法就是可以通過批處理的方式進(jìn)行登錄。
批處理的操作步驟如下:
(1)新建一個(gè)bat文件。
新建一個(gè)txt文件,然后將后綴名txt改成bat就可以。
(2)編輯bat文件,記事本打開文件然后將以下代碼復(fù)制進(jìn)去
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::執(zhí)行第一個(gè)微信 start /d "D:\ProgramFiles\Tencent\WeChat\" WeChat.exe ::執(zhí)行第二個(gè)微信 start /d "D:\ProgramFiles\Tencent\WeChat\" WeChat.exe exit
紅色部分需要替換成你自己的微信安裝目錄。
start命令,/d表示啟動(dòng)目錄。整個(gè)命令的格式如下圖。

2.多個(gè)壓縮包加密pdf文件解密
因?yàn)槲矣玫膒df解密軟件(PDFPasswordRemover)雖然支持批處理,但官方文檔沒有給出如何在Windwos系統(tǒng)下批處理調(diào)用方式,它的批處理方式是將所有pdf文件拖入軟件框內(nèi)就可以批量處理進(jìn)行解密操作,所以我寫的批量處理操作需要將所有壓縮包內(nèi)的pdf文件解壓后拷貝到同一個(gè)文件夾內(nèi),有知道的小伙伴可以在評(píng)論區(qū)告訴我。
(1)解壓所有壓縮包
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::查找當(dāng)前文件夾內(nèi)所有的.zip文件并使用WinRAR進(jìn)行解壓 for %%i in (*.zip) do (D:\ProgramFiles\WinRar\WinRAR.exe x -y %%i) pause
注意:執(zhí)行這個(gè)命令需要安裝WinRAR軟件,并且需要更改紅色的路徑。
目前這個(gè)命令可行的是WinRar軟件,360Zip是不行的,這樣寫會(huì)變成壓縮命令。
以下是for命令的格式和參數(shù)。

(2)將所有解壓出來的pdf文件拷貝到一個(gè)文件夾內(nèi)。
/r參數(shù)是表示遍歷當(dāng)前目錄以及所有子目錄。
/y參數(shù)是表示目標(biāo)文件存在同名文件時(shí),默認(rèn)覆蓋掉此文件。
::關(guān)閉回顯(命令不打印輸出),@命令從本行開始 @echo off ::創(chuàng)建一個(gè)目標(biāo)路徑變量tarDir set tarDir=C:\Output\pdf ::路徑不存在則創(chuàng)建一個(gè) 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ù)。

這兩個(gè)命令文件可以合并成一個(gè),執(zhí)行完第一步之后,加入此步的for行命令。
(3)批量解密pdf文件
將上一步的C:\Output\pdf文件夾內(nèi)所有pdf拖入下面的軟件中,

上面軟件的輸出默認(rèn)在C:\Output文件夾
(4)批量拷貝解密后的pdf文件回壓縮包目錄
解密后的pdf文件默認(rèn)會(huì)添加_Password_Removed.pdf后綴

也就是我們拷貝回去的時(shí)候,只需要拷貝后綴是_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 (
::對(duì)文件名進(jìn)行處理,并去除_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ù)表示對(duì)目錄以及子目錄進(jìn)行遍歷循環(huán)時(shí),可以打開文件,并將文件里面的內(nèi)容讀取到內(nèi)存,你可以對(duì)這個(gè)文件的內(nèi)容再進(jìn)行遍歷,目前這里還不需要,只需要文件名就可以了。
dir表示指向目錄。/b舍棄標(biāo)題與摘要內(nèi)容,不加這個(gè)窗口會(huì)多出很多打印。
/b /a:d選項(xiàng)是指定顯示所有具有該屬性的文件目錄。
/s 查找當(dāng)前目錄以及所有子目錄下的文件。

set var=!var:_Password_Removed=!
這條語句就是將_Password_Removed賦值為空,如果想改成其它的,直接在修改=后面就可以了。
copy /y選項(xiàng)是存在默認(rèn)處理方式是覆蓋掉文件,不加這個(gè)會(huì)一直彈窗讓你選擇。
(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)建固實(shí)壓縮文件。
-m<n>:設(shè)置壓縮模式,從底到高壓縮率越高:-m0不壓縮方式儲(chǔ)存;-m1最快;-m2較快;-m3標(biāo)準(zhǔn)(默認(rèn));-m4較好;-m5最好。
總結(jié)
以上就是對(duì)批處理命令的理解了,批處理對(duì)于重復(fù)性工作的幫助還是挺大的,能夠大大提高工作的效率。
相關(guān)文章
dos 環(huán)境變量延遲擴(kuò)展enabledelayedexpansion詳解
這篇文章主要介紹了dos 環(huán)境變量延遲擴(kuò)展的相關(guān)知識(shí),需要的朋友可以參考一下2016-11-11
批處理按要求將字符串分段輸出的實(shí)現(xiàn)代碼
批處理按要求將字符串分段輸出的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-10-10
批處理實(shí)現(xiàn)文本內(nèi)容橫列變縱列的代碼
批處理實(shí)現(xiàn)文本內(nèi)容橫列變縱列的代碼,需要的朋友可以參考下。2010-10-10
批處理實(shí)現(xiàn)一行內(nèi)容分行輸出的代碼
一行內(nèi)容分行輸出的代碼,區(qū)分了小寫字母,大寫字母與數(shù)字。2010-10-10
script_tool_for_windows.bat Windows 環(huán)境下的 hosts 一鍵部署腳本
這篇文章主要介紹了script_tool_for_windows.bat Windows 環(huán)境下的 hosts 一鍵部署腳本,需要的朋友可以參考下2016-04-04
WinXP自動(dòng)開機(jī)登陸WoW bat實(shí)現(xiàn)
WinXP自動(dòng)開機(jī)登陸WoW bat實(shí)現(xiàn)...2006-11-11

