2012-09-13 2 views
2

cmdlet을 호출 할 때 powershell 변수의 값을 확장하여 cmdlet에 대한 매개 변수 (관련 값 포함)로 사용할 수 있습니까?cmdlet 매개 변수로 powershell 변수를 인라인으로 확장 하시겠습니까?

는 여기에 내가 노력하고있어의 예 : 호출-SQLCMD가 실행될 때

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


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

문제는 온다. "-Username my username -Password my password"을 받아들이는 위치 매개 변수를 찾을 수 없다는 것을 알려줍니다. 따라서 변수를 확장하고 있지만 매개 변수 집합으로 제대로 보내지는 못합니다. 내가 여기서하려고하는 것을 할 수있는 방법이 있나?

답변

7

당신은 파워 쉘 변수를 인용,이 경우 필요하지 않다고 대신 예컨대 :

$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>.

관련 문제