在 PowerShell 上设置默认 CLI 选项的别名 [重复]

Posted

技术标签:

【中文标题】在 PowerShell 上设置默认 CLI 选项的别名 [重复]【英文标题】:Alias to set default CLI options on PowerShell [duplicate] 【发布时间】:2017-12-12 23:32:38 【问题描述】:

我想使用new-aliasset-alias 别名将--includeuser 设置为get-process cmdlet 的默认开关。

我愿意:

new-alias get-process 'get-process -includeuser'

但在执行get-process 时出现以下错误:

get-process:无法识别术语“get-process -includeuser $*” 作为 cmdlet、函数、脚本文件或可运行程序的名称。 检查名称的拼写,或者如果包含路径,请验证 路径正确,然后重试。

请帮帮我。


为了比较cmd.exe的别名可以用doskey设置如下:

doskey task=tasklist

如果命令有输入参数,则可以使用$*

【问题讨论】:

【参考方案1】:

PowerShell 中的别名不接受参数。通常的解决方法是定义一个短函数;例如:

function task  tasklist $args 

$args 变量大致相当于doskey 中的$*

在 PowerShell v3 及更高版本中,您还可以使用内置的 $PSDefaultParameterValues 变量(哈希表)将默认参数值分配给 cmdlet。例如:

$PSDefaultParameterValues.Add("Get-Process:IncludeUserName",$true)

这将指定Get-Process cmdlet 使用-IncludeUserName 作为默认值。

哈希表键是 cmdlet 名称、: 字符和参数名称(不带前导 -),哈希表值是参数的值。

【讨论】:

以上是关于在 PowerShell 上设置默认 CLI 选项的别名 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

wsl2 中的 Angular-CLI 比默认的 powershell 慢得多是正常的吗?

Vue CLI:将默认样式语言设置为 scss

[环境配置][转载]Vscode将默认终端从PowerShell改成cmd

Apache Commons CLI - 选项类型和默认值

PowerShell 设置文件夹权限

vue-cli3构建ts项目