2014-02-13 4 views
3

및 복사 항목 설명

gci $from -Recurse | copy-item -Destination $to -Recurse -Force -Container 

copy-item $from $to -Recurse -Force 

과 같은 방식으로 작동하지 않습니다-ChildItem을 얻기?

나는 그것이 같아야한다고 생각하지만 어떻게 든 그것은 그렇지 않습니다. 왜?

+0

차이점은 무엇입니까? 두 번째 스크립트가 재귀 적으로 복사되지 않습니까? 여기 한 사람이 foreach를 사용하여 모든 출력을 복사하는 것을 도와주었습니다. http://stackoverflow.com/questions/17972783/how-to-use-the-copy-item-cmdlet-colrectly – RayofCommand

답변

7

파일/폴더 모음의 각 항목을 반복하지 않지만 마지막 값을 파이프로 전달합니다. Foreach-item 또는 %를 Copy-Item 명령에 사용해야합니다. 거기에서 GCI의 모든 항목을 이미 가지고 있으므로 second -recurse 스위치가 필요하지 않습니다.

이 시도 :

여기
gci $from -Recurse | % {copy-item -Path $_ -Destination $to -Force -Container } 
+2

은 'gci $ from -Recurse'하지 말아야합니다. 디렉토리에서 모든 파일을 가져 와서 그것들을 파이프 –

+0

복사 항목에'$ _'이 누락되지 않았습니까? 이것은 PS 5.0에서 나에게 달려 있지 않다. 실제 명령은 다음과 같다 : 'gci $ from -Recurse | % {copy-item $ _ -Destination $ to -Force}' –

+0

당신은 내 원래 대답에서 $ _을 (를) 무시한 올바른 kumar_harsh입니다. 나는이 약간의 수정을했다. – websch01ar

1

Get-ChildItem -Path .\ -Recurse -Include *.txt | %{Join-Path -Path $_.Directory -ChildPath $_.Name } | Copy-Item -Destination $to 
-1

스위치가 잘못 위해 일 것입니다. 그들은해야합니다 :

gci -Path $from -Recurse | copy-item -Destination $to -Force -Container 
-1

모든 항목 루프,이 작업을해야합니다

gci -Path $from -Recurse | % { $_ | copy-item -Destination $to -Force -Container} 

그냥 다시 foreach는 파이프 각 항목을한다.