Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmd 比较两个文件夹并在Windows中的第三个文件夹中列出差异_Cmd_Robocopy - Fatal编程技术网

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

Cmd 比较两个文件夹并在Windows中的第三个文件夹中列出差异,cmd,robocopy,Cmd,Robocopy,我有3个文件夹,/Incoming、/Processed和/Temp。传入文件夹每小时更新一次新文件,当前其中包含120k+个.zip文件。每小时这些文件都会复制到已处理的文件夹中。将它们解压缩并将记录插入到SQL表中。每小时删除并重新创建一次表,并重新导入所有文件。这个过程开始需要很长时间 所有文件传输目前都在cmd批处理文件中完成,使用robocy/MIR和SQL.dtsx文件进行导入 我试图找到一种方法,在每小时复制新文件之前,将传入文件夹与已处理的文件夹进行比较,并将差异复制到临时文件夹

我有3个文件夹,/Incoming、/Processed和/Temp。传入文件夹每小时更新一次新文件,当前其中包含120k+个.zip文件。每小时这些文件都会复制到已处理的文件夹中。将它们解压缩并将记录插入到SQL表中。每小时删除并重新创建一次表,并重新导入所有文件。这个过程开始需要很长时间

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

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


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

此解决方案将比较两个文件夹(例如传入和已处理),并将第一个文件夹(传入)中的新文件复制到第三个文件夹(临时)进行处理

$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 
}
$Folder1=(获取ChildItem-Recurse-path“C:\Incoming”)
$Folder2=(获取ChildItem-Recurse-path“C:\Processed”)

(Diff$Folder1$Folder2 |?{$$_.SideIndicator-eq”此解决方案将比较两个文件夹(例如传入和已处理),并将第一个文件夹(传入)中的新文件复制到第三个文件夹(临时)进行处理

$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 
}
$Folder1=(获取ChildItem-Recurse-path“C:\Incoming”)
$Folder2=(获取ChildItem-Recurse-path“C:\Processed”)

(Diff$Folder1$Folder2 |?{$\.SideIndicator-eq”您可以直接使用fc命令 例如:fc srcfile destfile>logfile


或者使用ROBOCOPY

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


或者使用ROBOCOPY

请注意StackOverflow不是免费的代码/脚本编写服务!请分享您迄今为止的尝试,并告诉我们您遇到了什么问题!阅读并学习如何使用此网站!aschipfl道歉。我是一名初学者,不确定哪里出了问题。我应该更清楚地说明这一点。我在PowerShell中有解决方案我将为任何需要它的人提供。请注意StackOverflow不是免费的代码/脚本编写服务!请分享您迄今为止的尝试,并告诉我们您遇到了什么问题!阅读并学习如何使用此网站!aschipfl表示歉意。我是一名初学者,不确定我哪里出了问题。我应该更清楚地说明这一点。我在Powershell中提供解决方案,并将其提供给任何需要它的人。