繁体   English   中英

如何为 Powershell 中的特定命令设置别名?

[英]How do I set an alias for a specific command in Powershell?

我经常输入一个命令: java -jar foo --param1 --param2, --param-n 如何创建命令别名来运行此命令,如下所示:

launch_foo --param3

launch_foo在哪里被翻译成完整的命令?

您必须创建一个 function。 幸运的是,使用标准 arguments 创建“别名样式” function 并不难:

Function launch_foo { java -jar foo --param1 --param2 --param-n $args }

您现在可以调用 function 作为launch_foo或作为launch_foo --param3 请注意,如果您不传入任何额外的 arguments, $args将为$null ,并且不会对 function 中指定的默认 arguments 产生任何影响[1]

现在,Powershell 中有别名的概念,但别名是 cmdlet 或命令的替代名称,您不能将 arguments 添加到别名定义中。 您将使用别名作为备用可执行文件或 cmdlet 名称。 别名的一些示例:

Set-Alias v vim
Set-Alias list Get-ChildItem
Set-Alias 2json ConvertTo-Json

v将运行vimlist将运行Get-ChildItem2json将运行ConvertTo-Json


[1]请注意,这仅适用于外部命令。 如果您尝试以这种方式使用参数为 cmdlet 或 function 起别名,则$null参数将被评估为$null值,如果未提供$args将是$null 根据 cmdlet,这可能会引发错误、无效或产生不良影响。 根据 cmdlet,您可能还需要 splat @args以适当地传递 arguments。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM