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