我正在使用 PowerShell 5.0 在 Windows 8.1 Pro 上工作。
假设我想要获取一个文件的纯 SHA-256 哈希字符串。
我定义了以下函数:
function sha256sum([string]$arg) {
Get-FileHash -Algorithm SHA256 $arg | Format-List | grep Hash
}
示例输出:
PS C:\Users\Vlastimil\Downloads> sha256sum .\adr.exe
STDIN
Hash : B3729AFDB438A1B264D75003379DC8ADD2DADDF91D01674F2844DB114D22D71B
它几乎按照我的意愿运作,请问:
我该如何去掉第一行这句话
STDIN
?如何仅从第二行提取哈希字符串?
如何将字符串转换为小写?
答案1
您可以使用以下函数获取 STDIN:
function sha256sum([string]$arg) {
Get-FileHash -Algorithm SHA256 $arg | Format-List Hash
}
如果您想摆脱它产生的额外空行,请使用以下函数:
function sha256sum([string]$arg) {
(Get-FileHash -Algorithm SHA256 $arg | Format-List Hash | Out-String).Trim()
}
为了获得最终结果,您需要使用以下函数:
function sha256sum([string]$arg) {
$Hash = Get-FileHash -Algorithm SHA256 $arg | Select -ExpandProperty Hash
$Hash.ToLower()
}