파일 복사본을 수행하려면 PowerShell 스크립트를 사용하고 있습니다. 문제는 필터를 사용하여 여러 파일 형식을 포함하려고 할 때 발생합니다.
Get-ChildItem $originalPath -filter "*.htm" | `
foreach{ $targetFile= $htmPath + $_.FullName.SubString($originalPath.Length); `
New-Item -ItemType File -Path $targetFile -Force; `
Copy-Item $_.FullName -destination $targetFile }
는 꿈처럼 작동합니다. 그러나 필터를 사용하여 여러 파일 형식을 포함하려고 할 때 문제가 발생합니다.
Get-ChildItem $originalPath `
-filter "*.gif","*.jpg","*.xls*","*.doc*","*.pdf*","*.wav*",".ppt*") | `
foreach{ $targetFile= $htmPath + $_.FullName.SubString($originalPath.Length); `
New-Item -ItemType File -Path $targetFile -Force; `
Copy-Item $_.FullName -destination $targetFile }
에 다음 오류가 발생합니다.
Get-ChildItem : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Filter'. Specified method is not supported.
At F:\data\foo\CGM.ps1:121 char:36
+ Get-ChildItem $originalPath -filter <<<< "*.gif","*.jpg","*.xls*","*.doc*","*.pdf*","*.wav*",".ppt*" | `
+ CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.GetChildItemCommand
나는 괄호 안의 다양한 반복, 괄호 없음,-필터
,-포함하다
, 가변적 인 것을 변수로 정의하는 것 (예를 들어,$ filefilter.
) 그리고 각기는 위의 오류를 얻고 항상 언제든지 다음을 가리키고 있습니다.-필터
...에
그 흥미로운 예외는 내가 code를-filter "* .gif, *. jpg, *. xls *, *. doc *, *. pdf *, *. wav *, *. ppt *"
...에 오류가 없지만 결과가 없으며 아무 것도 콘솔에 다시 없습니다. 나는 실수로 불법적으로 코딩 된 것으로 의심합니다그리고
그 진술과 함께?
그래서 나는 무엇을 잘못하고 있는지, 어떻게 해결할 수 있습니까?