为什么
gci $from -Recurse | copy-item -Destination $to -Recurse -Force -Container
与
的行为方式不同copy-item $from $to -Recurse -Force
我认为它应该是相同的,但不知何故它不是。为什么呢?
答案 0 :(得分:8)
您没有循环遍历文件/文件夹集合中的每个项目,而是将最后一个值传递给管道。您需要将Foreach-item或%用于Copy-Item命令。从那里开始,你也不需要第二个 - 保证开关,因为你已经拥有GCI中的每个项目。
试试这个:
gci $from -Recurse | % {copy-item -Path $_ -Destination $to -Force -Container }
答案 1 :(得分:1)
这对我有用
Get-ChildItem -Path .\ -Recurse -Include *.txt | %{Join-Path -Path $_.Directory -ChildPath $_.Name } | Copy-Item -Destination $to
答案 2 :(得分:0)
这对我有用:
Get-ChildItem 'c:\source\' -Recurse | % {Copy-Item -Path $_.FullName -Destination 'd:\Dest\' -Force -Container }
答案 3 :(得分:-1)
开关错误。他们应该是:
gci -Path $from -Recurse | copy-item -Destination $to -Force -Container
答案 4 :(得分:-1)
要循环所有项目,这应该有效:
gci -Path $from -Recurse | % { $_ | copy-item -Destination $to -Force -Container}
只需做foreach并再次管道每个项目。