Powershell:将 `Read-Host` 作为键传递给 HashTable
Powershell: Passing a `Read-Host` as the key to HashTable
我正在尝试将用户输入传递给 hashTable,我正在尝试这样做。
$someHash =
@{
1 = "one";
2 = "two";
3 = "three"
}
$x = Read-Host "enter 1,2,3"
Write-Output($someHash.$x)
出于某种原因 $someHash.$x
和 $someHash[$x]
return 为空,但 $x
具有它的价值。
我还可以在对键进行硬编码时从地图中获取值。不确定我做错了什么。
添加地址评论。
我也尝试过使用相同的结果。
$someHash.[int]$x
$someHash[[int]$x]
[int]$x = Read-Host "enter 1,2,3"
我还使用单引号和双引号将字符串用作键。同样的结果。
使用 字符串键 你不需要将 Read-Host
的结果转换为 int.
注意,如果下面不行,很有可能是因为$x
在([int]$x
)之前被类型限制了,使用Remove-Variable x
或重新启动您的 PowerShell 会话。
$someHash =
@{
'1' = "one";
'2' = "two";
'3' = "three"
}
$x = Read-Host "enter 1,2,3"
$someHash[$x] # => Works (Recommended)
$someHash.$x # => Works
使用 int keys 你需要输入 constrain the result of Read-Host
to int:
$someHash =
@{
1 = "one";
2 = "two";
3 = "three"
}
[int]$x = Read-Host "enter 1,2,3"
$someHash[$x] # => Works (Recommended)
$someHash.$x # => Works
我正在尝试将用户输入传递给 hashTable,我正在尝试这样做。
$someHash =
@{
1 = "one";
2 = "two";
3 = "three"
}
$x = Read-Host "enter 1,2,3"
Write-Output($someHash.$x)
出于某种原因 $someHash.$x
和 $someHash[$x]
return 为空,但 $x
具有它的价值。
我还可以在对键进行硬编码时从地图中获取值。不确定我做错了什么。
添加地址评论。 我也尝试过使用相同的结果。
$someHash.[int]$x
$someHash[[int]$x]
[int]$x = Read-Host "enter 1,2,3"
我还使用单引号和双引号将字符串用作键。同样的结果。
使用 字符串键 你不需要将 Read-Host
的结果转换为 int.
注意,如果下面不行,很有可能是因为$x
在([int]$x
)之前被类型限制了,使用Remove-Variable x
或重新启动您的 PowerShell 会话。
$someHash =
@{
'1' = "one";
'2' = "two";
'3' = "three"
}
$x = Read-Host "enter 1,2,3"
$someHash[$x] # => Works (Recommended)
$someHash.$x # => Works
使用 int keys 你需要输入 constrain the result of Read-Host
to int:
$someHash =
@{
1 = "one";
2 = "two";
3 = "three"
}
[int]$x = Read-Host "enter 1,2,3"
$someHash[$x] # => Works (Recommended)
$someHash.$x # => Works