powershell 批量解压带密码的ZIP文件
生活随笔
收集整理的這篇文章主要介紹了
powershell 批量解压带密码的ZIP文件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
01 前言
某天,有人問(wèn)能不能批量解壓N個(gè)帶密碼的ZIP文件(密碼各不一樣),一個(gè)一個(gè)解壓太麻煩。想了一下,應(yīng)該可以,那就搞起來(lái)。
02 正文
1、準(zhǔn)備密碼文件
格式要求:
1、文件編碼為ASCII(一般系統(tǒng)默認(rèn))
2、包含兩列:第一列為文件名(不帶后綴,默認(rèn)會(huì)加.zip后綴),第二列為對(duì)應(yīng)的解壓密碼。中間以空格或TAB隔開(kāi)。
如圖:
2、準(zhǔn)備DLL
解壓工具很多,此處用Ionic.Zip.dll。找不到下載鏈接的可以到這下載。下載完成后最好放在與下文的腳本同一目錄下。
3、執(zhí)行腳本
代碼如下:
<# # 2018-11-20 By Hokis # 說(shuō)明: # 第一個(gè)輸入:密碼文件(命名為:密碼.txt)所在位置。可以直接確定跳過(guò),則默認(rèn) 密碼.txt 文件與當(dāng)前腳本是在同一路徑下 # 第二個(gè)輸入:壓縮文件所在位置。可以直接確定跳過(guò),則默認(rèn) 壓縮文件 與當(dāng)前腳本是在同一路徑下 #> #提示 $ws = New-Object -ComObject WScript.Shell #輸入 $pwdPath = Read-Host -Prompt "請(qǐng)輸入密碼文件(密碼.txt)所在路徑:" #留空則默認(rèn)當(dāng)前路徑 $gl = Get-Location if(-not $pwdPath){$pwdPath = $gl.Path.ToString() } #載入dll [System.Reflection.Assembly]::LoadFrom($gl.Path.ToString()+"\Ionic.Zip.dll") >$null #判斷是否存在 if(-not (Test-Path ($pwdPath + "\密碼.txt"))){$n1=$ws.popup("找不到文件:密碼.txt !",0,"提示",0 + 64) } else{$souPath = Read-Host -Prompt "請(qǐng)輸入待解壓的zip文件所在路徑:"if(-not $souPath){$souPath = $gl.Path.ToString()}$savePath = $souPath + "\解壓"if(-not (Test-Path $savePath)){mkdir $savePath >$null}# 讀取帶密碼文件內(nèi)容$lines = Get-Content -Path ($pwdPath + "\密碼.txt")#按行讀取foreach ($line in $lines){#分隔文件名和密碼$items = [regex]::split($line, '[\s]+')if ($items.Length -gt 1){ #拼接zip文件全路徑$SourceFile = $souPath + "\" + $items[0] + ".zip" #進(jìn)行解壓$zip = [Ionic.Zip.ZipFile]::Read($SourceFile)$zip.Password = $items[1]$zip.ExtractExistingFile= [Ionic.Zip.ExtractExistingFileAction]::OverwriteSilently #覆蓋文件$zip.ExtractAll($savePath)$zip = $null}}#完成$ws.popup("解壓完成!",0,"提示",0 + 64) | out-null } $gl = $null $ws = $null代碼另存為.ps1,右鍵,“使用Powershell運(yùn)行”即可,根據(jù)提示輸入必要的參數(shù)。如不能運(yùn)行,參考【此處】解決。
執(zhí)行完成后,會(huì)在當(dāng)前腳本的目錄生成一個(gè)叫解壓的文件夾,里面即所有的解壓結(jié)果。
03 后記
如果本地裝有支持命令行形式的解壓軟件(如WinRAR),調(diào)用一下也是可以的,就不必下載額外的DLL。
04 更新
- 2020-06-03
注意要將Ionic.Zip.dll放在與腳本同一目錄下
總結(jié)
以上是生活随笔為你收集整理的powershell 批量解压带密码的ZIP文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 相位型LCOS空间光调制器介绍
- 下一篇: 电子元件开头字母