Why does
gci $from -Recurse | copy-item -Destination $to -Recurse -Force -Container
not behave in the same way as
copy-item $from $to -Recurse -Force
?
I think it should be the same, but somehow it's not. Why?
Why does
gci $from -Recurse | copy-item -Destination $to -Recurse -Force -Container
not behave in the same way as
copy-item $from $to -Recurse -Force
?
I think it should be the same, but somehow it's not. Why?
You are not looping over each item in the collection of files/folders, but passing the last value to the pipe. You need to use Foreach-item or % to the Copy-Item command. From there, you also do not need the second -recurse switch as you already have every item in the GCI.
try this:
gci $from -Recurse | % {copy-item -Path $_ -Destination $to -Force -Container }
gci $from -Recurse
get all files from directory and them pipe thru –
Bronchitis $_
? This is not running for me in PS 5.0 The actual command is: gci $from -Recurse | % { copy-item $_ -Destination $to -Force }
–
Macropterous Here is what worked for me
Get-ChildItem -Path .\ -Recurse -Include *.txt | %{Join-Path -Path $_.Directory -ChildPath $_.Name } | Copy-Item -Destination $to
Join-Path
, use $_.FullName
in Copy-Item
instead. –
Mormon This works for me:
Get-ChildItem 'c:\source\' -Recurse | % {Copy-Item -Path $_.FullName -Destination 'd:\Dest\' -Force -Container }
The switches are wrong. They should be:
gci -Path $from -Recurse | copy-item -Destination $to -Force -Container
To loop all items, this should work:
gci -Path $from -Recurse | % { $_ | copy-item -Destination $to -Force -Container}
Just do the foreach and pipe each item again.
© 2022 - 2025 — McMap. All rights reserved.