Powershell V2.0 SHA1计算

时间:2014-12-04 12:00:33

标签: loops powershell hash powershell-v2.0 sha1

I posted a question on Monday about how I can calculate SHA1 hash within powershell
结果代码如下:

$file = 'C:\Zip\File.zip'

$sha1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider 
[System.BitConverter]::ToString( $sha1.ComputeHash([System.IO.File]::ReadAllBytes($file)))

这段代码完美无缺,完成了我需要它做的事情,但目前我必须指定我想要计算SHA1哈希值的文件。有没有什么办法可以让它来计算'zip'文件夹中每个文件的哈希值。

我过去两天一直试图通过使用循环等来做这件事,我只是没有移动到任何地方。我的PowerShell技能令人震惊并没有帮助。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以基本上,你只想

  1. 获取C:\Zip\
  2. 中所有文件的列表
  3. 将这段代码应用于每个代码段。
  4. 您希望了解如何使用ForEach循环(也可以缩写形式表示,以便与管道一起使用,如:$var | % {<#do this for each #>})。
    您可以在互联网上阅读有关ForEach循环的更多信息 - 我非常幸运地研究PowerShell主题的两个网站是TechNetHey, Scripting Guy! Blog。我建议检查一下,然后再读。

    这应该是一个好的开始:

    $zips = Get-ChildItem 'C:\Zip\' -Filter *.zip
    $sha1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider 
    
    foreach ($file in $zips) {
        $return = "" | Select Name, Hash
    
        $return.name = $file.Name
        $return.hash = [System.BitConverter]::ToString($sha1.ComputeHash([System.IO.File]::ReadAllBytes($file.FullName)))
    
        Write-Output $return
    }