Nod*_*rov 5 windows powershell
有一个我经常输入的命令:java -jar foo --param1 --param2, --param-n。如何创建命令别名来运行此命令,如下所示:
launch_foo --param3
Run Code Online (Sandbox Code Playgroud)
在哪里launch_foo翻译成完整的命令?
你必须创建一个函数。幸运的是,使用标准参数创建“别名样式”函数并不困难:
Function launch_foo { java -jar foo --param1 --param2 --param-n $args }
Run Code Online (Sandbox Code Playgroud)
您现在可以调用该函数 aslaunch_foo或 as launch_foo --param3。请注意,如果您不传入任何其他参数,$args则不会对函数中指定的默认参数$null产生任何影响[1] 。
现在,Powershell 中存在别名的概念,但别名是 cmdlet 或命令的备用名称,您不能向别名定义添加参数。您可以使用别名作为备用可执行文件或 cmdlet 名称。别名的一些示例:
Set-Alias v vim
Set-Alias list Get-ChildItem
Set-Alias 2json ConvertTo-Json
Run Code Online (Sandbox Code Playgroud)
v会跑vim,list会跑Get-ChildItem,2json还会跑ConvertTo-Json。
[1]请注意,这仅适用于外部命令。如果您尝试以这种方式为带有参数的 cmdlet 或函数添加别名,则$null参数将被评估为$null值($args如果$null未提供)。根据 cmdlet,这可能会引发错误、不起作用或产生不良效果。根据 cmdlet,您可能还需要 splat@args才能正确传递参数。
| 归档时间: |
|
| 查看次数: |
6670 次 |
| 最近记录: |