我想使用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
如果命令有输入参数,则可以使用 $*
。
答案 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名称,:
字符和参数名称(不带前导-
),哈希表值是参数的值。