您好,登錄后才能下訂單哦!
最近寫腳本遇到了一個(gè)解壓縮文件的問題,嘗試了很多方法,現(xiàn)在來總結(jié)一下。
#Extract ZIP files
if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) {throw "$env:ProgramFiles\7-Zip\7z.exe needed"}
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
sz x "$destinationpath" -y -oC:\Wicn_sys
#-oC:\Wicn_sys 這里用變量會(huì)出現(xiàn)問題,我用固定的路徑
首先需要客戶端都安裝了7zip軟件,在某些客戶端運(yùn)行并不成功。畢竟調(diào)用了第三方工具,效率,成功率,都有點(diǎn)問題
你在客戶端上,找個(gè)壓縮文件,右鍵,如果有Extract All的功能,說明內(nèi)置了windows的自解壓功能。易用簡單,但需要.net的版本條件,.net 4.5以上
$BackUpPath = "C:\a.zip"
$Destination = "C:\1"
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::ExtractToDirectory($BackUpPath, $destination)
如果報(bào)錯(cuò)說明當(dāng)前運(yùn)行的.net版本低了
$shell = New-Object -ComObject shell.application
$zip = $shell.NameSpace("C:\a.zip")
MkDir("C:\a")
foreach ($item in $zip.items()) {
$shell.Namespace("C:\a").CopyHere($item)
}
折騰了一天,為避免大家也浪費(fèi)時(shí)間,最后就兩點(diǎn)。
如果你做批量化的推送,要么你在所在客戶端上安裝7zip的軟件,要么把所有客戶端的.net升級到4.5以上。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。