【问题标题】:PowerShell Hash Tables Double Key Error: "a" and "A"PowerShell 哈希表双键错误:“a”和“A”
【发布时间】:2014-07-26 02:09:18
【问题描述】:

在另一个应用程序中,我有想要在脚本中使用的键值对。
但是他们有例如键“a”和“A” - 这会导致错误 不允许使用双键。

  $x = @{ "a" = "Entry for a"; "A" = "S.th.else for A" }

如果我需要两者都需要,我该怎么做?

提前致谢,
古力

【问题讨论】:

    标签: powershell hashtable


    【解决方案1】:

    默认情况下,PowerShell 哈希表不区分大小写。 试试这个

    $h = new-object System.Collections.Hashtable
    $h['a'] = "Entry for a"
    $h['A'] = "S.th.else for A"
    $h[0] = "Entry for 0"
    $h[1] = "Entry for 1"
    $h
    

    或者这个(取决于你喜欢的语法)

    $hash = New-Object system.collections.hashtable
    $hash.a = "Entry for a"
    $hash.A = "S.th.else for A"
    $hash.0 = "Entry for 0"
    $hash.1 = "Entry for 1"
    $hash.KEY
    $hash
    

    【讨论】:

    • 好的 - 这适用于“a”和“A”,但现在不接受密钥 0..9 :(
    • 我已经用 0..9 键测试了代码并且可以工作。我已经编辑了答案以表明...
    • 但这有效:$hash.Add("0","..."); $hash.Add("a","..."); $hash.Add("A","...");
    • 如果: $hash = New-Object system.collections.hashtable $hash.0 = "Check 0" 我得到:+ $hash.0
    • 即使访问 $hash.0 也不起作用,但是 $s="0";$hash.$s;给我“0”后面的值。
    【解决方案2】:

    您可以使用System.Collections.Hashtable 创建一个区分大小写的powerhsell 哈希表

    $x = New-Object System.Collections.Hashtable 
    $x['a']="Entry for a"
    $x['A']="S.th.else for A"
    

    【讨论】:

      猜你喜欢
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2020-04-13
      • 2019-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多