我的R Drive上有一个文件夹(日期为昨天的日期),用于每天的报告。 每天早上从我们的J Drive复制这些内容,只有部分人可以访问。我使用PowerShell进行复制,但对它来说相当新,所以总是害怕使用MOVE而不是COPY,并从J Drive中删除原件。所以我确保复制成功后手动完成。
我想做的是: 找到R Drive文件夹中的所有文件(它们是txt和ZIP),它们也存在于J Drive上,如果它们的大小相同,则删除J Drive上的文件。
请协助最好的方法 - 我不想单独处理每个文件。
答案 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)*'|除去-项目
刚为我工作