PowerShell 변수를 명령 매개 변수로 사용하는 방법은 무엇입니까?
변수를 명령어의 매개 변수로 사용하려고 하는데 정확히 알 수가 없습니다.예를 들면MyCommand
는 두 개의 파라미터를 받아들입니다.option1
그리고.option2
부울 값을 받아들입니다.$newVar를 옵션 1 또는 2로 대체하려면 어떻게 해야 합니까?예를 들어,
$newVar = "option1"
MyCommand -$newVar:$true
'인수를 받아들이는 위치 매개 변수를 찾을 수 없습니다'-시스템의 행에 따라 계속 무언가가 표시됩니다.문자열 옵션 1'.
보다 구체적으로:
여기서 CSV 파일은 다른 정책의 출력입니다.루프는 파일의 각 속성을 통과하고 내 정책에서 그 값을 df로 설정합니다.-$_.name:$_.value
로 대체해야 합니다.-AllowBluetooth:true
.
Import-Csv $file | foreach-object {
$_.psobject.properties | where-object {
# for testing I'm limiting this to 'AllowBluetooth' option
if($_.name -eq "AllowBluetooth"){
Set-ActiveSyncMailboxPolicy -Identity "asdf" -$_.name:$_.value
}}
}
일반적으로 변수를 사용하여 cmdlet 매개 변수를 채우려면 해시 테이블 변수를 사용하고 @을 사용하여 분할합니다.
$newVar = @{option1 = $true}
mycommand @newVar
예제 추가:
$AS_policy1 = @{
Identity = "asdf"
AllowBluetooth = $true
}
Set-ActiveSyncMailboxPolicy @AS_policy1
이 방법이 적합한지 확인해 보십시오.
iex "MyCommand -$($newVar):$true"
저도 같은 문제를 겪고 해결 방법을 찾았습니다.솔루션은 invoke-Expression: invoke-Expression $mycmd$mycmd$mycmd$mycmd$cmd 문자열을 사용하고 변수를 교체하여 주어진 매개 변수로 cmdlet으로 실행합니다.
요즘에는 문자열을 명령어로 평가하는 것이 괜찮다면 다음을 사용할 수 있습니다.Invoke-Expression
:
$mycmd = "MyCommand -$($newVar):$true"
Invoke-Expression $mycmd
저는 다음을 사용해 봅니다.
$mycmd = "MyCommand -$($newVar):$true"& $mycmd
결과
앰퍼샌드 연산자는 파라미터나 스크립트 블록 없이 단일 명령만 실행하기 때문에 작동할 수 없습니다.
언급URL : https://stackoverflow.com/questions/5956862/how-to-use-a-powershell-variable-as-command-parameter
'sourcecode' 카테고리의 다른 글
PL/SQL 함수에서 패스 배열을 사용하는 방법 (0) | 2023.10.11 |
---|---|
헤더 없이 SSRS에서 Excel로 내보내기 (0) | 2023.10.11 |
SQL 오류: ORA-02291: 무결성 제약 조건 (0) | 2023.10.11 |
jQuery vs. javascript? (0) | 2023.10.11 |
My Batis, 인서트의 자동 생성 키를 얻는 방법은?[MySql] (0) | 2023.10.11 |