比较两个文件夹上的文件的 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 脚本[关闭]的主要内容,如果未能解决你的问题,请参考以下文章