Get-ChildItem和Copy-Item说明

时间:2014-02-13 09:39:38

标签: powershell get-childitem copy-item

为什么

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

的行为方式不同
copy-item $from $to -Recurse -Force

我认为它应该是相同的,但不知何故它不是。为什么呢?

5 个答案:

答案 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并再次管道每个项目。