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\
中所有文件的列表,以及$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)中肯定有输入错误,因为我要跨两个系统。重新键入,现在可以正常工作了:)再次感谢!