2

我的 R Drive 上有一个文件夹(日期为昨天的日期),用于存放每天的报告。

这些都是每天早上从我们的 J Drive 复制过来的,只有一些人可以访问。我使用 PowerShell 进行复制,但对它相当陌生,所以一直不敢使用 MOVE 而不是 COPY,也不敢从 J Drive 中删除原件。所以我在确保复制成功后手动执行此操作。

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

这样做的最佳方法是什么?我宁愿不单独处理每个文件。

4

3 回答 3

4

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

$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)
}

我怀疑您可能想为此添加一些日志记录,如果您是极度紧张的类型,甚至可能会提示删除。:)

于 2013-10-30T02:14:27.047 回答
1

只需使用移动。它与使用副本一样安全。

于 2013-10-29T05:44:07.343 回答
0

如果您将它们全部复制到同一个文件夹中,则 Windows 会希望在 dup 文件的末尾放置一个 (1)(如果它们具有相同的名称),然后您可以运行

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

刚为我工作

于 2014-07-19T01:29:25.810 回答