我在文件myfunc.ps1
中有一个powershell函数function Set-Util ($utilPath ) {
if(Test-Path($utilPath) ){
$fullPath = Join-Path -Path $utilPath "util.exe"
set-alias MyUtil $fullPath
#echo "Path set to $fullPath"
}else {
throw (" Error: File not found! File path '$fullPath' does not exist.")
}
}
我用命令行用
来调用它。 \ myfunc.ps1
然后致电
Set-Util somedirectory
在函数中正确设置了别名,但我无法使用
访问它MyUtil
我应该导出别名,因为范围仅在方法中吗? 我试过这样做 Export-ModuleMember但是出现错误,说只能从insdie模块中调用cmdlet。
答案 0 :(得分:3)
您不能这样做,因为在调用函数之前不会设置别名,并且在调用函数时,别名的范围限定为函数范围,因此当函数完成运行时 - 别名消失了。
如果希望别名生存,请指定use scope参数,其值为'global'
答案 1 :(得分:-2)
Aliases can only point to cmdlets,不输出cmdlet(对象)。