Powershell 查找未受密码保护的 ZIP 文件夹中的所有文件并将其删除

Powershell to find all files in a folder NOT password-protected ZIP and delete them

我找到了这个 -> https://superuser.com/questions/1150631/powershell-script-to-test-zip-passwords-from-file -> 但看起来我需要的有点不同。

是否可以找到文件夹中所有不受密码保护的文件并将其删除?

试图解决人们将各种敏感文件放在不该放的地方的问题。

您可以尝试以下方法:

Get-ChildItem -Filter *.zip |
  Where-Object { '' | 7z t $_.FullName *>$null; $LASTEXITCODE -eq 0 } |
    Remove-Item -WhatIf

注意:上面命令中的-WhatIf common parameter预览操作。一旦您确定该操作将执行您想要的操作,请删除 -WhatIf

  • 以上使用7zt命令来验证存档完整性。

  • 受密码保护的存档触发密码提示,管道输入 - 空字符串 ('' | ...) - 提供响应,导致完整性验证 由于密码无效而失败7z 通过 非零 退出代码报告,反映在 PowerShell 的

  • $LASTEXITCODE -eq 0 因此 returns $true 只有通过完整性测试的档案,这些档案 没有 密码保护(7z 然后忽略不需要的管道输入)。