首页 > 解决方案 > 在PowerShell中有条件地注册存储库

问题描述

我想通过以下方式注册一个 powershell 存储库:

if((Get-PSRepository -Name $artifactory.Key.ToString().Trim()) -eq $null)
{
        #register the repository if not found
        $Location = "$($ConfigInfo.ArtifactoryCredentials.ArtifactoryServer.ToString().Trim())/$($artifactory.Value.ToString().Trim())"

        Write-Host "Registering repositories $($Location)" -ForegroundColor Cyan

        Register-PSRepository -Name $artifactory.Key.ToString().Trim() -SourceLocation $Location `
                                                                       -PublishLocation $Location `
                                                                       -InstallationPolicy Trusted -Verbose
}

似乎条件检查无效,因为代码进入 if 块并出现以下错误:

PackageManagement\Get-PackageSource : Unable to find repository

进入 if 块是有效的,但它输入错误,我想禁止

如何检查是否找到了 repo?

标签: powershell

解决方案


只需使用 ! 运算符并添加要忽略的错误操作:

if(!(Get-PSRepository -Name $artifactory.Key.ToString().Trim() -ErrorAction Ignore ))

推荐阅读