簡體   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