用于在PowerShell上设置默认CLI选项的别名

时间:2017-07-08 23:17:25

标签: powershell command-line-arguments alias

我想使用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 个答案:

答案 0 :(得分:4)

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

function task { tasklist $args }

$args变量粗略等同于$*中的doskey

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

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

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

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