比较两个文件夹上的文件的 git / powershell 脚本[关闭]

Posted

技术标签:

【中文标题】比较两个文件夹上的文件的 git / powershell 脚本[关闭]【英文标题】:git / powershell script that compares files on two folders [closed] 【发布时间】:2022-01-19 12:19:43 【问题描述】:

我有两个文件夹,一个有 67.000 个文件,另一个有 67.001 个文件。 现在我必须找到错误进入该文件夹的文件,因为这两个文件夹必须相同。 到目前为止,我还没有尝试过任何事情,因为我从未使用过 cmd 或 powershell 脚本,但是有人建议我这样做,我想请你帮忙。 任何建议都会有所帮助。 提前致谢。

编辑:

All files are PDF;
The largest file is ~64.000 KB;
Their names in their corresponding folder of course is different;

但是两个文件夹共享每个同名的文件,除了其中一个有 +1 文件,我找不到是哪个文件。

【问题讨论】:

您能告诉我们有关这些文件的其他信息吗?它们很大吗?它们的名称是否可预测(即,您是否有信心说您通过仅比较文件名找到了奇怪的文件)? 这是谷歌搜索“powershell 比较文件夹”Compare-Object -ReferenceObject (Get-ChildItem -Recurse -path C:\folder1) -DifferenceObject (Get-ChildItem -Recurse -path C:\folder2) 时的第一个结果,没有更多信息,我们无能为力 抱歉没有分享更多信息,我现在编辑帖子。 @MathiasR.Jessen 你能看一下帖子吗,我刚刚编辑了它。感谢您的宝贵时间。 @otter 我现在就试一试。 【参考方案1】:

但两个文件夹共享同名的每个文件

您可以计算两个文件夹中不同的文件名,然后观察哪个文件名只出现过一次 - 为此,您可以使用 Group-Object

$foldersToCompare = 'C:\folder1', 'C:\folder2'
$oddFile = $foldersToCompare |Get-ChildItem -File |Group-Object Name -NoElement |Where-Object Count -eq 1 |ForEach-Object Name

$oddFile 现在将包含仅存在于一个文件夹中的文件的名称。

【讨论】:

【参考方案2】:

如果您需要找到的唯一区别是文件名,那么下面的内容将适合您。

Compare-Object -ReferenceObject (Get-ChildItem -Recurse -path C:\folder1) -DifferenceObject (Get-ChildItem -Recurse -path C:\folder2)

请记住,这可以改进,因为它在技术上比较文件的所有属性,不仅是名称,而且为简单起见,我保持原样。

【讨论】:

以上是关于比较两个文件夹上的文件的 git / powershell 脚本[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Power BI - 时间序列比较两个不同的开始日期

Git diff 比较两个版本文件之间的差异

关于git merge的冲突的一个问题。

git 对比两个分支差异

如何使用 git diff 比较不在存储库中的两个远程文件?

无法将 Power Query 的文件错误加载到 Power Pivot 中……不是程序员,但之前这样做没有问题