This question already has answers here:
Prevent ArrayList.Add() from returning the index

(2 个回答)


2年前关闭。




我编写了一个将角色/成员添加到数据库/多维数据集的脚本。

出于某种原因,每次添加角色/成员时,控制台上都会输出 0。这是从哪里来的?我开始怀疑 Analysis.Role 属性有默认的 0 输出,因为当我的 if 语句运行并且成员已经存在时,所以没有添加角色/成员,没有输出 0。只有当角色不存在时才会输出 0,因为它正在添加角色。所以这就是我如何缩小到那个结论的范围。

但如果是这样,我该如何抑制这个“0”?
$ErrorActionPreference = 'SilentlyContinue' # suppress all exceptions

$as = New-Object Microsoft.AnalysisServices.Server
$as.Connect("$server")

$db = $Analysis_Server.Databases.FindByName($CUBE)

$ROLE = $db.Roles.FindByName($CUBE_ROLE)
$member = "member1"

$memberExists = $false

if ($ROLE) {
    # if role exists already...check if group exists, or just add group
    $memberExists = $ROLE.Members.GetEnumerator() |
                    ?{$_.name -like $member} |
                    select -First 1 |
                    %{$True}

    if ($memberExists) {
        Write-Host "already exists!"
    } else {
        $ROLE.Members.Add($member)
        $ROLE.Update()
    }

    $error.Clear()
    if ($error[0]) {
        Write-Host ("`r`nError Adding Group!" + "$($error[0])`r`n")
    }
}

powershell - 这个0从哪里来?-LMLPHP

最佳答案

改变:

$ROLE.Members.Add($member)

至:
$ROLE.Members.Add($member) | Out-Null

如果使用 .Add() 将对象添加到数组,则将返回其当前索引(在本例中为 0)。

关于powershell - 这个0从哪里来?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54436014/

10-12 17:07