powershell 如何为变量设置简写别名?

1szpjjfi  于 2023-05-07  发布在  Shell
关注(0)|答案(4)|浏览(193)

我正在使用一个设置$Global:LastResult的脚本,我如何设置一个别名,比如说,last来访问这个变量

ctzwtxfj

ctzwtxfj1#

您不能为变量定义别名(从技术上讲,您可以,只要变量不是$null,但您的别名将在赋值时具有变量的值)。
你可以做的是定义一个函数,返回$global:LastResult的值,然后为该函数定义一个别名:

function Get-LastResult { $global:LastResult }
New-Alias -Name last -Value Get-LastResult

但是,我看不到这种方法比直接使用变量$global:LastResult有什么优势。

o8x7eapl

o8x7eapl2#

正如TechNet对Set-Alias的描述:
可以为cmdlet创建别名,但不能为具有参数和值的命令创建别名。例如,您可以为Set-Location创建别名,但不能为Set-Location C:\Windows\System32创建别名。要为命令创建别名,请创建包含该命令的函数,然后创建该函数的别名。
所以你需要一个函数的别名来返回你的变量。

dohp0rv5

dohp0rv53#

要访问全局变量的值,您只需调用该变量。

PS c:> $Global:LastResult = 'foo'
    PS c:> $LastResult
    foo

如果要返回一个数组或多个答案,请构建一个自定义对象并将其作为function/cmdlet的结果返回。

$LastResult = MyCustomCmdlet($Input)

$LastResult

<whatever custom object>

在PowerShell中,别名是cmdlet或函数的简称。对于大量的示例,请尝试:

Get-Alias

或者只为一个,试试:

Get-Alias gci
xzlaal3s

xzlaal3s4#

您可以:

Function CD32 {Set-Location -Path C:\Windows\System32}
Set-Alias -Name Go -Value CD32

为带参数的命令创建别名

相关问题