比较两个文件夹并列出 Windows 中第三个文件夹中的差异

Compare two folders and list differences in third folder in Windows

我有 3 个文件夹,/Incoming、/Processed 和 /Temp。传入文件夹每小时更新一次新文件,目前有超过 120k 个单独的 .zip 文件。每小时将这些文件复制到已处理的文件夹中。它们被解压缩并将记录插入 SQL table。 table 每小时被丢弃并重新创建,所有文件都被重新导入。此过程开始需要很长时间。

所有文件传输目前都在 cmd 批处理文件中完成,使用 robocopy /MIR 和 SQL .dtsx 文件进行导入。

我正在尝试找到一种方法,在每小时复制新文件之前将传入文件夹与已处理文件夹进行比较,并将差异复制到临时文件夹,以便只将它们添加到 SQL 而不是每小时丢弃和重新创建。

任何帮助都会很棒,因为我在这个单一问题上花了几个小时,但没有运气。

此解决方案将比较两个文件夹(例如 Incoming 和 Processed),并将第一个文件夹(Incoming)中的新文件复制到第三个文件夹(Temp)中进行处理。

$Folder1 = (Get-ChildItem -Recurse -path "C:\Incoming") 
$Folder2 = (Get-ChildItem -Recurse -path "C:\Processed") 
(Diff $Folder1 $Folder2 | ? {$_.SideIndicator -eq "<="}).InputObject | 
ForEach-Object { 
   $ItemName1 = $_; 
   $ItemName2 = "C:\Temp\" + $ItemName1; 
   Copy-Item $ItemName2 -Destination "C:\Temp" -Force 
}

可以直接使用fc命令 例如:fc srcfile destfile >logfile

或使用 ROBOCOPY