Loops Powershell V2.0 SHA1计算

Loops Powershell V2.0 SHA1计算,loops,powershell,hash,powershell-2.0,sha1,Loops,Powershell,Hash,Powershell 2.0,Sha1,. 结果代码如下: $file = 'C:\Zip\File.zip' $sha1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider [System.BitConverter]::ToString( $sha1.ComputeHash([System.IO.File]::ReadAllBytes($file))) 这段代码工作得很好,完成了我需要它做的事情,但是现在我必须指定我想要计算SHA1散列的文件。

.
结果代码如下:

$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技能令人震惊,这无助于我


非常感谢您的帮助

所以基本上,你只想

  • 获取
    C:\Zip\
    中所有文件的列表,以及
  • 将这段代码应用于它们中的每一个 您希望研究使用ForEach循环(也可以用缩写形式表示,用于管道,如:
    $var |%{}
    )。
    你可以在互联网上阅读更多关于ForEach循环的信息——我很幸运地在两个网站上研究了PowerShell主题,分别是和。我建议你检查一下,然后仔细阅读

    这应该是一个良好的开端:

    $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
    }
    

    如果你已经尝试过了,展示你的代码,也许有人会告诉你哪里出了问题。在没有显示代码的情况下说“为什么这个不行”是毫无意义的。好的,谢谢,我会读一些foreach循环,看起来我在很多事情上都需要它们。干杯我已经运行了这个程序,它在每个zip文件上都出现了一个错误:italic_找不到“ComputeHash”的重载,参数计数为:“1”。在C:\Users\X\X\test.ps1:8 char:66+$return.hash=[System.BitConverter]::ToString($sha1.ComputeHash)中肯定有输入错误,因为我要跨两个系统。重新键入,现在可以正常工作了:)再次感谢!