是否可以在 powershell 中创建自定义(结构化)数据类型?

Sam*_*abu 1 powershell powershell-2.0

powershell 中可以有自定义数据类型吗?

我想要一个(结构化)变量,如下所示。以下内容在语法上不正确。我只想合并以下三个变量。

Variable Databasedetails {
   string  DatabaseName
   string  TableName
   string[] columnNames 
}
Run Code Online (Sandbox Code Playgroud)

如果 Powershell 可以做到这一点,那么我可以拥有单个变量数组,它可以帮助我轻松编写查询。

$Databasedetails = { "DataBaseName=DB-someX","TableName=TableX"," (ColumnNames={"Col1","col2"}" 
                    "DataBaseName=DB-someY","TableName=TableY"," (ColumnNames={"Col2","colN"}"
                  }

Foreach ($DBdetails in $DataBaseDetails)
  {
      $query= "SELECT [$DBdetails.$columnName] FROM [$DBdetails$DatabaseName].[dbo].[$DBdetails.$TableName]"
      invoke-sqlcmd -query $query -ServerInstance $srvInstance"
  }
Run Code Online (Sandbox Code Playgroud)

有什么方法可以创建结构化变量,并且我可以创建该变量的数组并进行处理?

x0n*_*x0n 5

最简单的方法是使用哈希表并将其转换为自定义对象:

$result = @()
for (... my loop ... ) {
    ... retrieve data ...
    $props = @{ Databasename = $dbname; Tablename = $tname; Cols = $colarray }
    $result += (new-object pscustomobject -prop $props)
}
Run Code Online (Sandbox Code Playgroud)