내 스크립트는 모든 .pdf 파일로 무엇인가해야합니다 (정확히 상관 없습니다). 이를 위해, 나는 이런 식으로 호출되는 함수를 작성했습니다 :Powershell 파이프 라인 null 값을 자체 함수로
Get-ChildItem -Recurse -Filter *.pdf | foreach { $_.FullName} | ProcessPdfCreator
내가 내 함수는 중괄호로 호출되는 것을 foreach
루프를 재 시도를하지만 아무것도 변경되지 않습니다. Anway 내 스크립트는 다음과 같습니다 : 내 테스트는 지금까지 $filepath
변수는 항상 null입니다 이어질
Function ProcessPdfCreator {
[cmdletbinding()]
Param (
[parameter(ValueFromPipeline=$true)]
[string]$filepath
)
Begin{}
Process{
#Do something with $filepath
}
End {}
}
; 하지만 파이핑/함수 호출 전에 이름이 정확하다는 것을 확인하기 위해 echo $_.FullName
을 사용했습니다.
추신 :이 컴퓨터에서는 PowerShell 2.0으로 작업해야하지만이 코드는 여기서도 작동 할 것입니다.
에 캐스팅 제거? '$ filepath'의 값이 null이라고 어떻게 결정 했습니까? –
오류 메시지는 null 또는 공백 (컴퓨터가 독일어로 설정되어 있고 오류 메시지도 마찬가지이기 때문에)에 대한 인수를 "경로"에 바인딩 할 수 없다고 말했습니다. 나는 그것을 확인하기 위해 함수에'echo ($ filepath -eq $ null)을했다. –
게시 한 코드로 설명하는 문제를 재현 할 수 없습니다. 필자는'Process {}'블록에'$ filepath'를 반향하여 Windows 7 32-bit의 기본 설치를 깨끗하게 테스트했습니다. –