PDA

Показать полную графическую версию : [решено] Проверить есть ли пароль на архивах из списка в тектовом файле, используя cmd и 7zip


Keleborn
31-03-2024, 10:21
Есть в наличии большой txt список путей с файлами различных архивов, одна строка - один полный путь до архива.
Из архиваторов можно использовать только 7zip
Подскажите, пожалуйста, как реализовать проверку наличия пароля на архиве, по возможности с выводов списка путей с запароленными архивами
Буду признателен за помощь.

DJ Mogarych
31-03-2024, 10:50
Powershell

gc 'C:\temp\in\list.txt' |% {
$null = & 'C:\Program Files\7-Zip\7z.exe' t -pBadPassword $_ 2>$null
if (-not $?) {
$_ |Out-File 'C:\temp\in\protected.txt' -Append
}
}


См. https://sourceforge.net/p/sevenzip/discussion/45798/thread/2b98fd92/#c6a3

Sham
31-03-2024, 11:10
gc 'file' | % {
. 7z.exe t $_ -p"" * >$null 2>&1
if ($LASTEXITCODE -ne 2) { return }
$_
} | out-file 'file_' -enc default
запароленные возвращают 2 (fatal error). Но и не архивы тоже 2 возвращают. У 7z нет особого кода для запароленных.

YuS_2
31-03-2024, 18:39
7z l asdf.rar -slt
в запароленных архивах присутствует:
Encrypted = +
в незапароленных:
Encrypted = -
- один минус: на каждый файл в архиве вываливается отдельная пачка инфы (если архивы большие, с кучей файлов, процесс может происходить небыстро)




© OSzone.net 2001-2012