【发布时间】:2022-01-12 12:28:53
【问题描述】:
在 Powershell 中,如何间接引用变量?
我有在代码的许多部分中引用的表,所以我有一个表名列表,如下所示:
$xTableName = "Tbl_x"
$yTableName = "Tbl_y"
$zTableName = "Tbl_z"
我有一个函数,我想将一个表示表格的字符串传递给它:
function getResult($entityName)
{
$tableName="$" + $entityName + "TableName"
$sqlCommand = "SELECT * FROM " + ${$tableName}
run query etc...
}
我打电话
getResult("x")
我正在尝试获取 $sqlCommand = "SELECT * FROM Tbl_x" 但获取的是 "SELECT * FROM $xTableName"
我如何做到这一点?
【问题讨论】:
-
我认为最好的方法是将表名列表存储在哈希表中,并在
getResult函数中查找该哈希表。 -
顺便说一句:
getResult("x")应该是getResult "x":必须调用 PowerShell 函数、cmdlet、脚本和外部程序类似于 shell 命令 -foo arg1 arg2- 不 像 C# 方法 -foo('arg1', 'arg2')。如果您使用,分隔参数,您将构造一个命令将其视为单个参数 的数组。请参阅this answer 了解更多信息。
标签: powershell variables indirection