PowerShell可以使用别名关键字吗?

时间:2019-07-11 12:56:06

标签: powershell

我正在查看Set-Alias命令,

  

在当前PowerShell会话中为cmdlet或其他命令创建或更改别名。

所以我想,嘿,为什么不“还”错误,只是为了好玩(不在srs代码中!),尝试了一下:

Set-Alias -Name Yeet -Value throw
Get-Alias -Name Yeet

Get-Alias报告它已创建别名。

CommandType  Name            Version    Source
Alias        Yeet -> throw 

尝试“发现”错误:

yeet "oh sh*t"

返回以下内容:

yeet : The term 'throw' is not recognized as the name of a cmdlet, function, script file, or operable program.

这是因为它是关键字而不是命令?您可以看到别名有效。最好的解决方法是什么?只需接受一个参数然后重新抛出的函数就显得很无聊。

1 个答案:

答案 0 :(得分:3)

否,您不能为不单靠的内容加上别名,包括函数定义。所有的别名命令都属于您的可调用别名。

例如

function test { throw 'test' }
Set-Alias myalias test

同时

Set-Alias myalias { throw 'test' }

不起作用。它将脚本块转换为字符串,然后调用别名将随后失败。

通常,如果您的子目录未显示在Get-Command中,则您不能为其添加别名。


  

最佳解决方法是什么?只需接受一个参数然后重新抛出的函数就显得很无聊。

钻孔功能正常:

function yeet { throw $args }