PowerShell HashTable - 初始化期间的自引用

Hon*_*scz 8 powershell initialization hashtable

我有一个理论问题 - 如何在初始化期间引用哈希表,例如,计算基于其他已经声明的成员的成员.

Remove-Variable myHashTable -ErrorAction Ignore
$myHashTable = 
@{
    One = 1
    Two= 2
    Three = ??? # following expressions do not work 
        # $This.One + $This.Two or 
        # $_.One + $_.Two
        # $myHashTable.One + $myHashTable.Two
        # ????
}

$myHashTable.Three -eq 3 # make this $true
Run Code Online (Sandbox Code Playgroud)

有什么想法怎么做?它真的可能吗?

编辑:这是我的解决方案:

$myHashTable = 
@{
    One = 1
    Two= 2
}
$myHashTable.Three = $myHashTable.One + $myHashTable.Two
Run Code Online (Sandbox Code Playgroud)

Lun*_*ter 7

使用对象初始化程序语法我无法做到这一点.虽然可以使用变量,但您必须在创建对象之前计算值.


ZEE*_*ZEE 1

您也可以重复此操作...

有时当哈希表很长
并且只能在 2 或 3 次重复中定义时...
工作正常:

$AAA = @{
    DAT = "C:\MyFolderOfDats"
    EXE = "C:\MyFolderOfExes"
    }

$AAA += @{
    Data   = $AAA.DAT + "\#Links"

    Scripts  = $AAA.EXE + "\#Scripts"
    ScriptsX = $AAA.EXE + "\#ScriptsX"
    }
Run Code Online (Sandbox Code Playgroud)
  • 请注意,在第二部分中,我们只是
    向第一部分添加 ( += ) 更多项目...但是现在...我们可以引用哈希表第一部分中的

    项目