gpt4 book ai didi

Powershell 哈希表问题

转载 作者:行者123 更新时间:2023-12-01 12:38:23 25 4
gpt4 key购买 nike

我创建了一个小脚本来接受用户 ID、名字、姓氏,然后将该数据添加到哈希表中。我遇到的问题是当我显示我的哈希表时说用户的值是 System.Object。我做错了什么?

$personHash = @{}
$userID=""
$firstname=""
$lastname=""


While([string]::IsNullOrWhiteSpace($userID))
{
$userID = Read-Host "Enter ID"
}

While([string]::IsNullOrWhiteSpace($firstname))
{
$firstname = Read-Host "Enter First Name"
}


While([string]::IsNullOrWhiteSpace($lastname))
{
$lastname = Read-Host "Enter Last Name"
}


$user = New-Object System.Object
$user | Add-Member -type NoteProperty -Name ID -value $userID
$user | Add-Member -type NoteProperty -Name First -value $firstname
$user | Add-Member -type NoteProperty -Name Last -Value $lastname
$personHash.Add($user.ID,$user)

$personHash

最佳答案

看起来当 PowerShell 显示哈希表的内容时,它只是对表中的对象调用 ToString。它不会像通常那样使用 DefaultDisplayPropertySet 对它们进行格式化。

一种替代方法是像这样使用 PSCustomObject 而不是 System.Object:

$user = New-Object PSCustomObject -Property @{ ID = $userID; First = $firstname; Last = $lastname }
$personHash.Add($user.ID, $user)

然后显示会是这样的:

Name         Value  
---- -----
1 @{ID=1;First="Mike";Last="Z"}

关于Powershell 哈希表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462405/

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