我的电脑桌面上有个带密码的压缩包, 我想使用下面的代码解压出里面的文件,
有个问题就是, 如果判断压缩包带不带密码?
如果带密码: 则弹出输入框输入密码, 直到输入正确的密码再解压, 或者不想解压了,点取消按钮取消操作,
如果不带密码: 直接解压
下面的代码, 输入两次密码后解压出了文件, 但文件都是0k的大小, 求路过大佬指导 | cls | | Add-Type -AssemblyName Microsoft.VisualBasic | | | | | | function Unzip-File { | | param( | | [string]$ZipFile, | | [string]$ExtractFolder | | ) | | [string]$PathTo7Zip = "C:\Program Files\7-Zip\7z.exe" | | | | | | if (Test-Path -Path $ZipFile -PathType Leaf) { | | | | do { | | $Password = [Microsoft.VisualBasic.Interaction]::InputBox("请输入密码", "解压缩文件", "", 0, 0) | | | | if ([string]::IsNullOrEmpty($Password)) { | | | | exit | | } | | | | $ErrorActionPreference = 'SilentlyContinue' | | & $PathTo7Zip x $ZipFile "-o$ExtractFolder" "-p$($Password | ConvertTo-SecureString -AsPlainText -Force)" | | $IsCorrect = $? | | $ErrorActionPreference = 'Continue' | | } while (!$IsCorrect) | | } else { | | Write-Host "找不到指定的文件。" | | } | | } | | | | | | $ZipFile = "$env:USERPROFILE\Desktop\test.zip" | | $ExtractFolder = "$env:USERPROFILE\Desktop\test" | | | | Unzip-File -ZipFile $ZipFile -ExtractFolder $ExtractFolderCOPY |
|