Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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密钥/值对匹配问题_Powershell - Fatal编程技术网

Powershell密钥/值对匹配问题

Powershell密钥/值对匹配问题,powershell,Powershell,我正在检查powershell中的键值对。我尝试过各种方法,但没有一种像我预期的那样有效 在查找$checked\u group时,我不断得到True响应,即使我可以在写入中看到KeyValue对 if(!($checked_组[$varDomain]-eq“$varName”) 即使keyValue对在$checked\u groups字典中,上述语句也是True。你以前见过这个吗 我无法使用下面的代码片段重现问题,尽管它的逻辑与我的实时代码几乎相同。值的来源是不同的,因为我在实时代码中动态地

我正在检查powershell中的键值对。我尝试过各种方法,但没有一种像我预期的那样有效

在查找
$checked\u group
时,我不断得到
True
响应,即使我可以在写入中看到KeyValue对

if(!($checked_组[$varDomain]-eq“$varName”)

即使keyValue对在
$checked\u groups
字典中,上述语句也是
True
。你以前见过这个吗

我无法使用下面的代码片段重现问题,尽管它的逻辑与我的实时代码几乎相同。值的来源是不同的,因为我在实时代码中动态地收集这些值。在循环中对它们进行迭代,我的
$checked_groups=@{}
在这个循环之外,以在所有迭代中维护dict键/对,并且我可以确认它们在任何迭代中都被保留

我不明白为什么这个语句总是解析为
True
:(


$foo-ne$bar
替换
!()
,并将值赋给中间变量,以查看在哪一步出错。您的意思是创建一些新变量并创建一个带有
($checked\u groups[$varDomain]-neq“$varName”)的语句)
?好的,我想。。。我已经解决了。出于某种原因,这个
$checked_groups+=@{$varDomain=$varName}
似乎是喜怒无常的。我将其更改为
.Add()
,它似乎正在运行。收集更多数据后将再次更新。不,类似于
$foo=$checked\u groups[$varDomain]
if($foo-ne$varName
),因此您可以通过打印或使用ISE对变量值进行双重检查。在打印语句周围添加字符有助于捕获额外的空白,如在
写主机中“foo is/$foo/
我建议您更改访问和更新字典的方式。使用
$dictionary[“keyExistsOrNot”]=“value”
。如果存在,它将更新值,否则将创建新值。您不必遍历所有If-else语句
$checked_groups = @{ }
$varDomain = "example.com"
$varName = "Administrator"

if (!($checked_groups[$varDomain] -eq "$varName"))
{
    write-host 'Not In There'
}

foreach ($thing in $checked_groups)
{
    Write-Host ($thing | Out-String)
}

$checked_groups += @{$varDomain = $varName}

if (($checked_groups[$varDomain] -eq "$varName"))
{
    write-host 'In There'
    foreach ($thing in $checked_groups)
    {
        Write-Host ($thing | Out-String)
    }
}