PowerShell의 함수에 해시 테이블을 전달하는 방법은 무엇입니까?
해시 테이블을 내 PowerShell 함수에 전달할 때 개체를 수신한다고 불평합니다.
Function ExtendHash(){
param(
[hashtable] $source,
[hashtable] $extender
)
...
}
그리고 전화를 건 사람은:
$hash1 = @{One = 1; Two = 2}
$hash2 = @{Two = 22; three = 3}
ExtendHash($hash1, $hash2)
시스템을 변환할 수 없습니다.System 유형의 Object[] 값입니다.시스템을 입력할 개체[]입니다.수집.해시 테이블
그럼 어떻게 하면 될까요?제안?
또한, 기본 제공되는 것이 누락되었습니까?JavaScript에서 기본 옵션을 확장할 때 사용하는 패턴(기본값 병합 및 재정의)과 동일한 패턴을 원합니다.
괄호와 쉼표를 사용하지 마십시오.이것은 PowerShell입니다(예: 인수는 CMD의 명령 인수와 유사함).즉, 다음과 같이 함수를 호출합니다.
ExtendHash $hash1 $hash2
당신의 경우 표현식에서($hash1,$hash2)
는 두 항목의 배열이며 이 배열, 즉 하나의 인수를 함수에 전달합니다.이러한 호출은 올바르게 실패합니다.
사용하는 경우Set-StrictMode -Version 2
PowerShell은 이 "일반적인" 실수를 발견했습니다.
함수 또는 명령이 메서드인 것처럼 호출되었습니다.매개 변수는 공백으로 구분해야 합니다.매개 변수에 대한 자세한 내용은 about_Parameters 도움말 항목을 참조하십시오.
(로맨의 대답 옆에:)
호출자는 해시 테이블을 변수에 저장할 필요가 없으며 다음을 사용할 수도 있습니다.
ExtendHash -source @{One = 1; Two = 2} -extender @{Two = 22; three = 3}
(-source
그리고.-extender
해시 테이블 자체가 에 대해 arg-value-detected로 해석되지 않도록 하기 위해 필요합니다.ExtendHash
)
언급URL : https://stackoverflow.com/questions/12931043/how-do-you-pass-a-hash-table-to-a-function-in-powershell
'programing' 카테고리의 다른 글
jQuery.scrollTop(); + 애니메이션 (0) | 2023.08.01 |
---|---|
LINQ to SQL - 특정 열을 선택하고 강하게 입력된 목록을 반환하는 방법 (0) | 2023.08.01 |
와일드카드(%)만 값으로 사용하는 SQL LIKE 성능 (0) | 2023.08.01 |
Angular에서 @Input()은 무엇에 사용됩니까? (0) | 2023.08.01 |
PowerShell에서 문자열 콘텐츠를 문자열 배열로 분할하는 방법은 무엇입니까? (0) | 2023.08.01 |