簡體   English   中英

如何使用參數名稱運行powershell命令是可變的

[英]How to run powershell command with parameter name is variable

我需要將相同的命令Get-QadUserSet-QadUser到一個屬性和他的值,但我的屬性是一個變量。

我的代碼(設置不起作用!):

$property = 'MobilePhone' # OK
$value = ($User | get-QadUser -IncludedProperties $property).$property # OK
$user | Set-QadUser -$PropertyName $NewValue # NOK

在這種情況下,您可以使用名為Splatting的 PowerShell功能,如Don Jones本人所解釋的: Windows PowerShell:Splatting

在此,您可以將參數定義為Property和Value對的字典對象,如下所示:

$parameters = @{$FirstPropertyName = $FirstValue; $SecondPropertyName = $SecondValue; $ThirdPropertyName = $ThirdValue}

然后,您可以使用@運算符將其傳遞給cmdlet,如下所示:

Set-QadUser @parameters

您的完整工作腳本如下所示:

$property = 'MobilePhone' # OK
$value = ($User | get-QadUser -IncludedProperties $property).$property # OK

$parameters = @{$PropertyName = $NewValue}
$user | Set-QadUser @parameters # OK

編輯:我之前沒有注意到PetSerAl已在評論中給出答案。 我希望這個答案也能增加整體價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM