У меня есть скрипт PowerShell:

$passwords = Get-Content list.txt
$7ZipPath = '"C:\Program Files\7-Zip\7z.exe"'
$zipFile = ".\dane_7up.zip"
foreach ($password in $passwords)
{
    Write-Host $password
    $command = '"$7ZipPath t $zipFile -p $password"'
    iex $command
    if (-Not $?)
    {
        [console]::beep(500,300)
        return
    }
}
pause

Я хочу проверить, совпадает ли один из паролей из файла list.txt с файлом zip. Но сейчас скрипт просто печатает строку с вызовом 7-Zip и не запускает ее. Что я должен изменить в скрипте, чтобы он работал?

Также: могу ли я экранировать пароль с помощью "", если в нем есть пароль с пробелом?

1 ответ1

1
$passwords = Get-Content "C:\path\passwords.txt"
$7ZipPath = "C:\Program Files\7-Zip\7z.exe"
$zipFile = "C:\path\file.zip"
foreach ($password in $passwords)
{
    Write-Host $password
    & $7ZipPath "t" $zipFile "-p$password"
    if (-Not $?)
    {
        Write-Host $password "is not the password."
    } else {
        Write-Host $password "is the password."
    }
}
pause

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .