powershell - 使用PowerShell快速测试两个文件的内容是否相同

标签 powershell

作为更大的 PowerShell 脚本的一部分,我想测试两个二进制文件的内容是否相同。

我认为以下在逻辑上是正确的:

if (@(Compare-Object 
    $(Get-Content f1.txt -encoding byte) 
    $(Get-Content f2.txt -encoding byte) 
    -sync 0).length -eq 0) {
    "same" 
} else {
    "different"
}

但是,上面的运行速度非常慢,因为它实际上是在使用比较对象来实现更简单的实现。

我正在寻找给出相同逻辑结果的东西,但使用一些更快的低级文件比较。

我不需要或不想要任何差异的描述,或任何文本输出,只是一个逻辑测试,给我一个 bool 结果。

最佳答案

如果文件很大,导致compare-object需要很多时间,你可以生成SHA1哈希并进行比较。

或者您可以在循环中逐字节读取文件,在第一个不相等的字节处中断。

关于powershell - 使用PowerShell快速测试两个文件的内容是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788371/

相关文章:

arrays - 在数组中的指定索引位置添加元素。电源外壳

powershell - cp -r与cp -recurse是否做相同的事情?

winforms - 在全 GUI Powershell 脚本中隐藏空控制台窗口?

powershell - Visual Studio 在线构建和发布 Azure Powershell

Powershell:找不到接受参数 “test”的位置参数

Java Powershell CreateProcess error=2,系统找不到指定的文件

powershell - 使用PowerShell ADSI提供程序将组添加到组

powershell - $($variableName) 在 PowerShell 中的可扩展字符串中是什么意思?

windows - 使用 Powershell 向 Regasm 注册 .NET DLL 失败

powershell - VSTS Powershell secret 变量