【发布时间】:2015-07-14 00:33:28
【问题描述】:
Total N00b 到 Powershell 并且已经有一个脚本使用 Robocopy 将文件及其目录结构复制到另一个文件夹,然后将它们从子文件夹复制到根文件夹。是的,我尝试过搜索,但找不到任何有用的东西。
这是第二步的Powershell命令:
get-childitem -rec -include *.* | copy-item -destination 'yourpath'
有什么我可以添加到这个的,这样它就不会复制目标目录(即文件夹结构的根目录)中已经存在的文件(根据文件名)?
提前致谢
【问题讨论】:
-
将您的 copy-item 命令包含在一个 IF 块中,用于测试目标文件是否存在。
-
谢谢@TonyHinkle 所以我基本上需要它来检查它在子文件夹中找到的每个项目在主文件夹中不存在。试过这个:
get-childitem -rec -include *.* | if(!(Test-Path -Path 'C:\Users\Public\Tictocwatches v2.0\Images\Images Matched to Current Data 03-05-2015')) { copy-item -destination 'C:\Users\Public\Tictocwatches v2.0\Images\Images Matched to Current Data 03-05-2015' }但它说 if 无效或位于错误的位置。 (那里可能还有一大堆其他错误,但那是 powershell 向我抛出的错误。) -
谢谢@GrahamGold,正如我所说,我已经搜索过但没有找到任何结果。这似乎做了我想做的事,或者至少为我指明了正确的方向。 :)
-
再次@GrahamGold 谢谢你似乎已经完成了这项工作。有什么方法可以更显着地将人们重定向到该线程?
-
@GrahamGold - 您可以将文件是否存在的测试移动到 cop-item cmdlet 之前的 Where-Object 条件中,就像我在这篇文章中的回答一样。
标签: file powershell robocopy