powershell复制文件以递归方式排除列表中存在的文件

时间:2015-03-09 17:41:44

标签: powershell copy-item

我有一个文件(例如list.txt),其中包含文件路径列表,例如

F:\用户\用户\桌面\ f1.doc
F:\用户\用户\桌面\ f2.doc
F:\用户\用户\文档\ f3.doc
F:\用户\用户\文件\ f4.doc

我还在计算机上附加了一个F:驱动器,其中包含这些文件以及其他未出现在list.txt中的文件

我想复制F:驱动器上不属于list.txt列表但保持文件夹结构完整的所有文件。

类似" copy-item F:\ users \ user \ desktop \ f2a.doc -destination C:\ copied \ users \ user \ desktop \ f2a.doc"但对于F:驱动器中的所有文件。

我猜我将不得不使用-filter,因为-exclude并没有按预期工作,但我不知道如何工作。非常感谢任何帮助。

哈拉

这是我到目前为止的代码:     

$file = "list.txt"
$target = "c:\copied\"

$prevDir = "c:\dummy" $count = 0 foreach ($line in Get-Content $file){ $currDir = (Get-ChildItem $line).Directory if ($currDir -ne $prevDir) { $files = Get-ChildItem $currDir -Recurse foreach ($item in $files) { if ($item -ne (Get-ChildItem $fullPath).Name) { Copy-Item $item.FullName -Destination $target + $line $count++ } } } $prevDir = $currDir } </pre>

1 个答案:

答案 0 :(得分:0)

我最终在C#中编写了一个小程序来实现这一目标。任何对代码感兴趣的人都可以在此处找到它:https://github.com/ecofriend/CryptoFileSaver