0
[System.Messaging.Message] 유형의 개체를 내 스크립트 내의 함수로 전달할 수 없습니다.Powershell에서 개체를 함수로 전달할 수 없습니다.
(코드의 개요)
function global:CopyQueue() {
$vTotalCountInMSMQ = $global:qSource.GetAllMessages()
foreach ($msg in $vTotalCountInMSMQ)
{
ReadAndCopyMessage $destinationQueue ([REF]$msg)
}
}
대상 기능 : (. 속성 '위치'이 개체에서 찾을 수 없습니다 수 있는지가 존재하고 설정 가능한 지 확인) 속성에 액세스 할 수 없음
function global:ReadAndCopyMessage($destinationQueueName, [REF]$message)
{
$message = $message.BodyStream.Position
.etc.....
}
가
. 그러나이 코드를 CopyQueue 함수 내에서 실행하면 모든 것이 예상대로 작동합니다.이 코드를 아웃소싱하고 $ msg 객체를 루프 밖으로 처리하는 데 문제가 있습니다. 사전에 도움을
덕분에
비슷한 질문이 작동하지 않았다
- PowerShell pass by reference not working for me
- Powershell argument passing to function seemingly not working
는 [참조]를 사용하는 이유가 있나요? [ref]를 사용하면 이상한 구문을 만들기 때문에 $ message.value.bodystream.position을해야 할 수도 있습니다. – TheMadTechnician
시도해 보았습니다. [ref] 시도해도 .value. 성공하지 못했습니다. 복사본 대신에이 객체에 대한 참조를 전달하려고했습니다. – jens
[REF] $ msg 주위의 괄호는 확실히 원하는 것이 아닙니다. 제거하십시오. –