温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - powershell binary file comparison
powershell powershell-2.0

其他 - Powershell二进制文件比较

发布于 2020-03-30 21:26:52

全部,有一个生成它的导出转储的应用程序。我需要编写一个脚本,将前几天的转储与最近的转储进行比较,如果它们之间有差异,我必须对移动和删除某种东西进行一些基本的操作。我想找到一种合适的方法,而我尝试的方法是: $var_com=diff (get-content D:\local\prodexport2 -encoding Byte) (get-content D:\local\prodexport2 -encoding Byte) 我也尝试了Compare-Object cmdlet。我注意到内存使用率很高,System.OutOfMemoryException几分钟后最终收到一条消息你们中的一个做过类似的事情吗?请一些想法。有一个提到有比较的线程,我不知道该怎么做。在此先感谢伙计Osp

查看更多

提问者
user2967267
被浏览
166
mjolinor 2013-11-15 09:19

另一种方法是比较文件的MD5哈希值:

$Filepath1 = 'c:\testfiles\testfile.txt'
$Filepath2 = 'c:\testfiles\testfile1.txt'

$hashes = 
foreach ($Filepath in $Filepath1,$Filepath2)
{
 $MD5 = [Security.Cryptography.HashAlgorithm]::Create( "MD5" )
 $stream = ([IO.StreamReader]"$Filepath").BaseStream
 -join ($MD5.ComputeHash($stream) | 
 ForEach { "{0:x2}" -f $_ })
 $stream.Close()
 }

if ($hashes[0] -eq $hashes[1])
  {'Files Match'}