[英]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
将运行vim
, list
将运行Get-ChildItem
, 2json
将运行ConvertTo-Json
。
[1]请注意,这仅适用于外部命令。 如果您尝试以这种方式使用参数为 cmdlet 或 function 起别名,则$null
参数将被评估为$null
值,如果未提供$args
将是$null
。 根据 cmdlet,这可能会引发错误、无效或产生不良影响。 根据 cmdlet,您可能还需要 splat @args
以适当地传递 arguments。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.