1

Я работаю на Windows 8.1 Pro с PowerShell 5.0.

Допустим, я хочу получить чистую хеш-строку 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. Как извлечь только строку Hash из второй строки?

  3. Как мне преобразовать строку в нижний регистр?

1 ответ1

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()
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .