将SHA1算法输出保存到文本文件

时间:2014-12-18 09:54:09

标签: powershell text output powershell-v2.0 sha1

早上好,

我有这个PowerShell脚本如下:

$zips = Get-ChildItem 'C:\Users\X\Desktop\Powershell\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 

[System.IO.File}::WriteAllText("C:\Users\X\Desktop\Info\"+ $_.Name + ".txt", $_.FullName)

}

Read-Host -Prompt "Press Enter to Exit" 

所以它计算文件夹'zip'中所有zip文件的SHA1哈希值,我试图将哈希值保存到位置\ desktop \ info \中的文本文件中,并带有一个单独的文本文件每个zip文件。

哈希的计算没有任何问题,并将其打印在powershell窗口中,但目前所做的只是创建一个单独的文本文件,其中没有数据,没有名称。

我错过了什么?我已经尝试使用另一个脚本中的信息做了非常相似的事情,但我似乎无法产生相同的结果。

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

试试这个:

[System.IO.File]::WriteAllText("C:\Users\X\Desktop\Info\"+$return.Name+".txt",$return.Hash)

答案 1 :(得分:0)

而不是

[System.IO.File}::WriteAllText("C:\Users\X\Desktop\Info\"+ $_.Name + ".txt", $_.FullName)

试试这个:

$return.hash | Out-File "C:\Users\X\Desktop\Info\$($file.BaseName).txt"