在 PowerShell 上设置默认 CLI 选项的别名 [重复]
Posted
技术标签:
【中文标题】在 PowerShell 上设置默认 CLI 选项的别名 [重复]【英文标题】:Alias to set default CLI options on PowerShell [duplicate] 【发布时间】:2017-12-12 23:32:38 【问题描述】:我想使用new-alias
或set-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 慢得多是正常的吗?