比较两个文件夹并列出 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
我有 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