今天我们要说的是如何用PowerShell比较两个文件的一致性,我们知道比较文件的一致性以前有很多种方式,比如可以用软件来得到他们的MD5算法值,再通过比较算法值来得出这个文件是否保持一致性。
但是我们写算法可不是一件简单的事情,这里就可以让我们的PowerShell出场了,在PowerShell里有一个命令就是Get-FileHash,该命令可以得到文件的哈希值甚至是专门指定的算法哈希值。
下面我们来看看如何使用Get-FileHash来得到我们所指定文件的哈希值,首先我们创建了一个test.txt文本文件,在这个文本文件里我们键入了内容为"123"。接着我们直接可以使用命令指定文本文件的详细路径得到他的哈希值如下:
PS C:\Users\Administrator> Get-FileHash -Path "C:\test.txt" | Format-List
Algorithm : SHA256
Hash : A665A45920422F9D417E4867EFDC4FB8A04A1F3FFF1FA07E998E86F7F7A27AE3
Path : C:\test.txt
默认情况下,我们的算法是SHA256,当然我们还可以改为其它算法,目前支持如下几种算法,我们可以自己设定:
-- SHA1
-- SHA256
-- SHA384
-- SHA512
-- MACTripleDES
-- MD5
-- RIPEMD160
像下面这样,我们指定了以MD5的算法来得出哈希值。
PS C:\Users\Administrator> Get-FileHash -Path "C:\test.txt" -Algorithm MD5 | Format-List
Algorithm : MD5
Hash : 81DC9BDB52D04DC20036DBD8313ED055
Path : C:\test.txt
现在让我们做个测试,当我把test.txt文件里的内容从"123"改为 "1234"时,我们再次取得哈希值时我们会发现哈希值产生了变化。
PS C:\Users\Administrator> Get-FileHash -Path "C:\test.txt" | Format-List
Algorithm : SHA256
Hash : 03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4
Path : C:\test.txt
所以以后如果为了判断文件的一致性我们可以用这种方式去比较是否一致,是否有前后改动。