gpt4 book ai didi

powershell - 带有哈希表的 Foreach 对象?

转载 作者:行者123 更新时间:2023-12-03 14:25:12 24 4
gpt4 key购买 nike

我正在尝试检查是否通过登录脚本映射了某些网络驱动器。如果它们没有被映射,脚本应该能够映射它们,但下面代码中的我的 Foreach-Object 不起作用。为什么?我不能在哈希表上使用它吗?

$Hash = @{
"h:" = "\\server\share";
"i:" = "\\server\share";
"j:" = "\\server\share";
"k:" = "\\server\share";
"p:" = "\\server\share";
"z:" = "\\server\share";
}
$Hash | ForEach-Object
{
If (!(Test-Path $_.Name))
{
$map = new-object -ComObject WScript.Network
$map.MapNetworkDrive($_.Name, $_.Value, $true)
Write-Host "Mapped That Stuff"
}
else
{Write-Host ($Hash.Name) + ($Hash.Value)}
}

我该如何使用 foreach在这种情况下?或者有没有更好的方法来解决这个问题而不是哈希表或 foreach 循环?

最佳答案

迭代 [hashtable]你需要为它获取一个枚举器:

   $Hash.GetEnumerator() | ForEach-Object {
If (!(Test-Path $_.Name))
{
$map = new-object -ComObject WScript.Network
$map.MapNetworkDrive($_.Name, $_.Value, $true)
Write-Host "Mapped That Stuff"
}
else
{Write-Host ($_.Name) + ($_.Value)}
}

关于powershell - 带有哈希表的 Foreach 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33619616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com