我正在查看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.
这是因为它是关键字而不是命令?您可以看到别名有效。最好的解决方法是什么?只需接受一个参数然后重新抛出的函数就显得很无聊。
答案 0 :(得分:3)
否,您不能为不单靠的内容加上别名,包括函数定义。所有的别名命令都属于您的可调用别名。
例如
function test { throw 'test' }
Set-Alias myalias test
同时
Set-Alias myalias { throw 'test' }
不起作用。它将脚本块转换为字符串,然后调用别名将随后失败。
通常,如果您的子目录未显示在Get-Command
中,则您不能为其添加别名。
最佳解决方法是什么?只需接受一个参数然后重新抛出的函数就显得很无聊。
钻孔功能正常:
function yeet { throw $args }