#powershell
#powershell
Вопрос:
Моя цель состоит в том, чтобы я мог ввести файл md5sum в powershell. Я попытался добавить псевдоним, см. Код ниже:
function file_hash {
param (
[Parameter(Mandatory = $true, Position = 0)]
$algorithm,
[Parameter(mandatory=$false, ValueFromPipeline=$true, Position = 1)]
$file
)
if ($file) {
(Get-FileHash -Path $file -Algorithm $algorithm).Hash
}
}
Set-Alias md5sum (file_hash -algorithm 'MD5' -file $args)
Powershell не может создать псевдоним из-за следующей ошибки:
Невозможно привязать аргумент к параметру ‘Value’, поскольку он равен null.
Может ли кто-нибудь мне помочь?
Как я могу получить свой псевдоним md5sum?
Ответ №1:
Короче говоря, вы не можете делать то, что пытаетесь сделать, по крайней мере, не так, как вы пытаетесь это сделать.
Из документации Microsoft в примере 5: создайте псевдоним для команды с параметрами:
Вы не можете создать псевдоним для команды с параметрами и значениями, такими как
Set-Location -Path C:WindowsSystem32
.
Приведенная выше ссылка предоставляет альтернативу для достижения той же функциональности, хотя:
Чтобы создать псевдоним для команды, создайте функцию, которая включает в себя команду, а затем создайте псевдоним для функции.
PS> Function CD32 {Set-Location -Path C:WindowsSystem32}
PS> Set-Alias -Name Go -Value CD32
Итак, в вашем случае вы бы сделали что-то вроде:
function Invoke-FileHashMD5
{
param( $File )
file_hash -algorithm 'MD5' -file $File
}
Set-Alias -Name md5sum -Value "Invoke-FileHashMD5"