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

2023-12-01

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

这是我正在尝试的示例:

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


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

当 Invoke-Sqlcmd 运行时就会出现问题。它告诉我找不到接受“-用户名”的位置参数my username-密码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>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

powershell变量内联扩展作为cmdlet参数? 的相关文章

随机推荐