我正在使用Powershell 2.0。
我有一个包含单个SHA256哈希值的变量(对应于文件的哈希值,此处为$filename
):
$filename = "C:\aaa\aaa.exe"
$sha256Value = ... # The hash for $filename
我想将该值保存到文件中。这是我尝试的第一个解决方案:
$sha256Value | Out-File -FilePath ($filename + ".sha256")
文件的大小(不在磁盘上)是134个字节。使用此命令,它会在.sha256文件中生成换行符。
我试过的第二个解决方案:
[IO.File]::AppendAllText(($filename + ".sha256"),$sha256Value,[System.Text.Encoding]::UTF8)
使用第二个选项,文件大小(不在磁盘上)是67个字节,它也不包含换行符。
另外,只需删除UTF8编码,我就可以将文件大小降低到64字节。
是否还有其他可以减小文件大小的解决方案?此外,是否可以为第一个解决方案(即使用Out-File)获得相同的文件大小?
答案 0 :(得分:2)
您可以直接编写字节:
[text.encoding]::utf8.getbytes($sha256Value) | set-content ($filename + ".sha256") -encoding byte