Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 无法在多个目录中找到.7z存档_Powershell_7zip - Fatal编程技术网

Powershell 无法在多个目录中找到.7z存档

Powershell 无法在多个目录中找到.7z存档,powershell,7zip,Powershell,7zip,我试图构建一个简单的脚本,在这个脚本中,我根据用户输入时提供的密码测试多个目录中的所有.7z存档。当前,脚本只能处理与脚本位于同一目录中的归档文件,否则无论密码是否正确,我都会得到以下输出: ================================================================ 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 Error: cannot find archi

我试图构建一个简单的脚本,在这个脚本中,我根据用户输入时提供的密码测试多个目录中的所有.7z存档。当前,脚本只能处理与脚本位于同一目录中的归档文件,否则无论密码是否正确,我都会得到以下输出:

================================================================ 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 Error: cannot find archive Directory:\Documents\Project\FOLDER1 Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 06/08/2018 16:30 223 Alpha.7z Wrong Password! ================================================================ 改变

进入


要使用Get ChildItem为外部命令提供的文件完整路径,请使用
$LASTEXITCODE
,而不是
$?
。对我来说,它似乎不是重复的@AnsgarWiechers@simon将行(&$7ZipPath“t”$File“-p$Password”)更改为(&$7ZipPath“t”$File.FullName“-p$Password”)使用Get返回的文件的完整路径-ChildItem@TobyU抢手货
$CaseDirectory = Read-Host 'Please input Case directory'
$Password = Read-Host 'Please input Case password'

$7ZipPath = "C:\Program Files\7-Zip\7z.exe"
$Files = Get-ChildItem -Path $CaseDirectory -Recurse -Force -Filter *.7z

$Output = Foreach ($File in $Files)
{
    & $7ZipPath "t" $File "-p$Password"
    if (-not $?)
    {  
       Write-Output $File "Wrong Password!"
    } else {
        Write-Output $File "Password Match"
    }
    Write-Output "================================================================"


} 
$Output | findstr /r /v "^$" | Out-File -FilePath $CaseDirectory\PasswordTest_Output.txt 

pause
& $7ZipPath "t" $File "-p$Password"
& $7ZipPath "t" $File.FullName "-p$Password"