Get-Location

获取当前工作位置的相关信息。

语法

Get-Location [-PSDrive <string[]>] [-PSProvider <string[]>] [-UseTransaction] [<CommonParameters>]

Get-Location [-Stack] [-StackName <string[]>] [-UseTransaction] [<CommonParameters>]

说明

Get-Location cmdlet 获取表示当前目录的对象,非常类似于 pwd(打印工作目录)命令。

当您在 Windows PowerShell 驱动器间移动时,Windows PowerShell 保留您在每个驱动器中的位置。可以使用 Get-Location 来查找您在每个驱动器中的位置。

还可以在运行时使用 Get-Location 来获取当前目录并将其用于函数和脚本,例如在 Windows PowerShell 提示符中显示当前目录的函数。

如果使用 Push-Location cmdlet 将位置添加到路径堆栈,则可以使用 Get-Location 的 Stack 参数来显示当前堆栈。

参数

-PSDrive <string[]>

获取指定的 Windows PowerShell 驱动器中的当前位置。

例如,如果您位于 Certificate: 驱动器中,则可以使用此参数来查找您在 C: 驱动器中的当前位置。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-PSProvider <string[]>

获取指定的 Windows PowerShell 提供程序支持的驱动器中的当前位置。

如果指定的提供程序支持多个驱动器,则 Get-Location 将返回最近访问过的驱动器上的位置。

例如,如果您位于 C: 驱动器中,则可以使用此参数来查找您在 Windows PowerShell Registry 提供程序的驱动器中的当前位置。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Stack

显示默认路径堆栈中的位置。

要将路径添加到默认堆栈,请使用 Push-Location cmdlet。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-StackName <string[]>

显示指定的路径堆栈中的位置。

要创建路径堆栈,请使用 Push-Location cmdlet。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-UseTransaction

将命令包含在活动事务中。仅当正在执行事务时,此参数才有效。有关详细信息,请参阅 about_Transactions。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

不能通过管道将输入传递给此 cmdlet。

输出

PathInfo 对象或 StackInfo 对象

如果使用 Stack 或 StackName 参数,则 Get-Location 返回 StackInfo 对象。否则,它返回 PathInfo 对象。

说明

位置可以存储在堆栈中。Push-Location cmdlet 将位置添加到堆栈的顶部。Pop-Location cmdlet 获取堆栈顶部的位置。

PSProvider、PSDrive、Stack 和 StackName 参数的交互方式取决于提供程序。某些组合将会导致错误,例如,指定驱动器以及没有公开该驱动器的提供程序。如果没有指定参数,则 Get-Location 为包含当前工作位置的提供程序返回 PathInfo 对象。

Get-Location cmdlet 用于处理由任何提供程序公开的数据。要列出会话中可用的提供程序,请键入“Get-PSProvider”。有关详细信息,请参阅 about_Providers。

示例 1

C:\PS>get-location

Path
----
C:\WINDOWS

说明
-----------
此命令显示您在当前 Windows PowerShell 驱动器中的位置。

例如,如果您位于 C: 驱动器的 Windows 目录中,则此命令将显示该目录的路径。





示例 2

C:\PS>set-location

说明
-----------
这些命令演示如何使用 Get-Location 来显示您在不同 Windows PowerShell 驱动器中的当前位置。

第一个命令使用 Set-Location cmdlet 将当前位置设置为 C: 驱动器的 Windows 子目录。

    C:\PS> set-location C:\Windows

第二个命令使用 Set-Location cmdlet 将位置更改为 HKLM:\Software\Microsoft 注册表项。更改为 HKLM: 驱动器中的位置时,Windows PowerShell 将保留您在 C: 驱动器中的位置。

    PS C:\WINDOWS> set-location HKLM:\Software\Microsoft
    PS HKLM:\Software\Microsoft>

第三个命令使用 Set-Location cmdlet 将位置更改为“HKCU:\Control Panel\Input Method”注册表项。

    PS HKLM:\Software\Microsoft> set-location 'HKCU:\Control Panel\Input Method'
    PS HKCU:\Control Panel\Input Method>

第四个命令使用 Get-Location cmdlet 来查找 C: 驱动器上的当前位置。它使用 PSDrive 参数来指定驱动器。

    PS HKCU:\Control Panel\Input Method> get-location -psdrive c
    路径
    ----
    C:\WINDOWS

第五个命令使用 Set-Location cmdlet 返回到 C: 驱动器。即使该命令没有指定子目录,Windows PowerShell 也将返回到保存的位置。

    PS HKCU:\Control Panel\Input Method> set-location C:
    PS C:\WINDOWS>

第六个命令使用 Get-Location cmdlet 来查找 Windows PowerShell 注册表提供程序支持的驱动器中的当前位置。Get-Location 将返回最近访问过的注册表驱动器 HKCU: 的位置。

    PS C:\WINDOWS> get-location -psprovider registry
    路径
    ----
    HKCU:\Control Panel\Input Method

要查看 HKLM: 驱动器中的当前位置,需要使用 PSDrive 参数来指定该驱动器。第七个命令执行此操作:

    PS C:\WINDOWS> get-location -psdrive HKLM
    路径
    ----
    HKLM:\Software\Microsoft





示例 3

C:\PS>set-location

说明
-----------
这些命令演示如何使用 Get-Location 的 Stack 参数和 StackName 参数来列出默认路径堆栈和备用路径堆栈中的路径。

第一个命令将当前位置设置为 C: 驱动器上的 Windows 目录。
    
    C:\PS> set-location C:\Windows

第二个命令使用 Push-Location cmdlet 将当前位置 (C:\Windows) 推入路径堆栈并更改为 System32 子目录。因为没有指定任何堆栈,所以将当前位置推入默认堆栈。
    C:\WINDOWS>push-location System32

第三个命令将当前位置 (C:\Windows\System32) 推入 Stack2 堆栈,并将位置更改为 WindowsPowerShell 子目录。
    
    C:\Windows\System32>push-location WindowsPowerShell -stack Stack2

第四个命令使用 Get-Location cmdlet 来获取默认路径堆栈中的路径。
    
    C:\WINDOWS\system32\WindowsPowerShell>get-location -stack

    路径
    ----
    C:\WINDOWS

最后一个命令使用 Get-Location 的 StackName 参数来获取 Stack2 堆栈中的路径。
    
    C:\WINDOWS\system32\WindowsPowerShell>get-location -stackname Stack2

    路径
    ----
    C:\WINDOWS\system32





示例 4

C:\PS>function prompt { 'PowerShell: ' + (get-location) + '> '}

PowerShell: C:\WINDOWS>

说明
-----------
此示例演示如何自定义 Windows PowerShell 提示符。定义提示符的函数包括 Get-Location 命令,只要提示符出现在控制台中就会运行该命令。

默认 Windows PowerShell 提示符的格式由一个名为“prompt”的特殊函数来定义。可以通过创建一个名为“prompt”的新函数来更改控制台中的提示符。

要查看当前的 prompt 函数,请键入以下命令:
 
    get-content function:prompt

此命令以“function”关键字开头,其后是函数名称“prompt”。函数体位于大括号 ({}) 内。

此命令定义一个以字符串“PowerShell: ”开头的新提示符。为追加当前位置,它使用 Get-Location 命令,该命令将在调用 prompt 函数时运行。提示符以字符串“> ”结尾。





另请参阅

概念

about_providers
Pop-Location
Push-Location
Set-Location