比较文件夹并删除重复项

时间:2013-10-29 05:39:14

标签: powershell

我的R Drive上有一个文件夹(日期为昨天的日期),用于每天的报告。 每天早上从我们的J Drive复制这些内容,只有部分人可以访问。我使用PowerShell进行复制,但对它来说相当新,所以总是害怕使用MOVE而不是COPY,并从J Drive中删除原件。所以我确保复制成功后手动完成。

我想做的是: 找到R Drive文件夹中的所有文件(它们是txt和ZIP),它们也存在于J Drive上,如果它们的大小相同,则删除J Drive上的文件。

请协助最好的方法 - 我不想单独处理每个文件。

3 个答案:

答案 0 :(得分:3)

要回答你的问题,这里是我过去做过类似事情的一个例子:

$one = Get-ChildItem C:\temp\test1
$two = Get-ChildItem C:\temp\test2

$matches = (Compare-Object -ReferenceObject $one  -DifferenceObject $two -Property Name,Length -ExcludeDifferent -IncludeEqual)

foreach ($file in $matches)
{
    Remove-Item c:\temp\test2\$($file.Name)
}

我怀疑你可能想要添加一些日志记录,如果你是非常紧张的类型,甚至可能会提示删除。 :)

答案 1 :(得分:1)

只需使用MOVE即可。它与使用副本一样安全。

答案 2 :(得分:0)

如果你将它们全部复制到同一个文件夹,那么windows会想要在dup文件的末尾添加(1)(如果它们具有相同的名称) 然后你可以运行

Get-ChildItem'C:\ Your \ Path *(1)*'|除去-项目

刚为我工作