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 函数时运行。提示符以字符串“> ”结尾。