PowerShellで次の関数を使用しているときにSTDIN文字列を削除するにはどうすればよいですか?


1

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

私の願いに関してはほとんど機能しています。

  1. 最初の行を削除するにはどうすればよいSTDINですか?

  2. 2行目からハッシュ文字列のみを抽出するにはどうすればよいですか?

  3. 文字列を小文字に変換するにはどうすればよいですか?

回答:


2

次の関数を使用して、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()
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.