繁体   English   中英

内联扩展Powershell变量作为cmdlet参数?

[英]Inline expansion of powershell variable as cmdlet parameter?

调用cmdlet时,是否可以以某种方式扩展powershell变量的值,使其充当cmdlet的参数(具有关联的值)?

这是我正在尝试的示例:

$CREDENTIALED_SECTION = "-Username $USER_NAME -Password $PASSWORD"
.
.
.


Invoke-Sqlcmd -ServerInstance "$SERVER_NAME" -Query "$SQL_STATEMENT" "$CREDENTIALED_SECTION" -Database "$DATABASE"

问题发生在Invoke-Sqlcmd运行时。 它告诉我找不到一个位置参数,该位置参数接受“ -Username my username -Password my password ”,因此它正在扩展变量,但不能作为一组参数正确发送。 有办法做我在这里尝试的事情吗?

您可以使用哈希表将这样的参数传递给PowerShell命令,例如:

$CREDENTIALED_SECTION = @{Username=$USER_NAME; Password=$PASSWORD}

Invoke-Sqlcmd -ServerInstance $SERVER_NAME -Query $SQL_STATEMENT @CREDENTIALED_SECTION -Database $DATABASE

请注意,在这种情况下,不必引用PowerShell变量。 您还需要在命令调用中使用splatting语法,例如@<hashtable_with_parameter_name_value_pairs>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM