Function 哈希表未通过已用函数返回值

Function 哈希表未通过已用函数返回值,function,powershell,output,hashtable,Function,Powershell,Output,Hashtable,我的Powershell代码有问题。 我目前正在尝试使用哈希表将某个输出分配给给定的输入值,但该函数不显示所需的输出 $ComponentHashTable = @{ 1 = 'Test1'; 10 = 'Test10'; 100 = 'Test100'} function Output-Status ($Entry) { Write-Host ($Entry + $ComponentHashTable.($Entry.Substring(($Entry.LastIndexOf(&qu

我的Powershell代码有问题。 我目前正在尝试使用哈希表将某个输出分配给给定的输入值,但该函数不显示所需的输出

$ComponentHashTable = @{
1 = 'Test1';
10 = 'Test10';
100 = 'Test100'}

function Output-Status ($Entry)
{
    Write-Host ($Entry + $ComponentHashTable.($Entry.Substring(($Entry.LastIndexOf(".")) + 1)))
}

$Entry = '10.10.10.10'

Output-Status ($Entry)
Read-Host
根据我的理解,它应该给出以下输出:
10.10.10.10测试10

相反,它只返回以下内容:
10.10.10.10

上面给出的代码是简化的,但基本上与我正在尝试使用的代码相同

我将非常感谢您对此提供的任何帮助,因为我已经尝试让它工作了一段时间。

键的类型为
[object]

这意味着整数
1
是一个不同的键,然后是一个字符串
'1'
(在一个哈希表中可以有两个不同的对象键):

在您的情况下,需要使用字符串键才能将其与其他字符串键进行比较:

$ComponentHashTable = @{
'1' = 'Test1';
'10' = 'Test10';
'100' = 'Test100'}

@铁的回答是绝对正确的。我有一个不同的版本,您仍然使用整数作为哈希表中的键,但将索引计算为int:

功能输出状态($Entry)
{
$key=[int]$Entry.Substring(($Entry.LastIndexOf(“.”)+1)
写入主机$Entry$ComponentHashTable[$key]
}
$ComponentHashTable = @{
'1' = 'Test1';
'10' = 'Test10';
'100' = 'Test100'}