这就是我修改 Powershell 数组的方式:
ForEach ($userID in $usersList) {
$allUsers += [pscustomobject]@{ID=$usersCounterTable;UserID=$userID;Name=$userInfo.DisplayName;Ext=$userInfo.ipPhone;Cellphone=$userInfo.mobile;Enabled=$isEnabled;VDI=$computerType;Title=$userTitle;}
$usersCounter += 1
$usersCounterTable = "[$usersCounter]"
}
稍后在代码中显示表格,我希望用户能够键入一个数字来打开该值,该数字实际上是数组索引/偏移量(减 1)。我无法找到如何做到这一点。
$userID
实际上是用户的选择,因为他们也可以输入另一个员工的代码来搜索,或者搜索他的名字。我希望用户能够选择数组索引号。
if (($userID.length -gt 0) -and ($userID.length -lt 5)) {
$indexNumber = ($userID - 1)
[????] $userFinalChoice = $allUsers[$userID].Name # NOT VALID
}
上面的代码有效,如果用户输入一个介于 1 和 9999 之间的数字......然后我想这样做:($allUsers[$userID]
是$userID
用户使用 Read-Host 选择的数字)。仅,$allUsers[$userID].Name
无效,但有效$allUsers[1].Name
。如果我能弄清楚这一点,我将能够修复它的其余部分并搜索返回值。
还需要确保用户没有输入超出范围的索引$usersList
(使用$ErrorActionPreference = "SilentlyContinue"
可能会起作用,因为它只是拒绝搜索拒绝,但它不是那么干净。)
据我了解,我实际上是在寻找 的反面$usersList.IndexOf(‘David’)
,我想提供索引并返回名称。
非常感谢 - Powershell 初学者。