about_Locations
简短说明
介绍了在 PowerShell 中如何从当前工作位置访问各个项。
长说明
当前工作位置是命令指向的默认位置。 换句话说,这是没有提供受命令影响的项或位置的显式路径时 PowerShell 使用的位置。
注意
PowerShell 支持每个进程有多个运行空间。 每个运行空间都有自己的当前目录。 这不同于 PowerShell 进程的当前目录:[System.Environment]::CurrentDirectory
。
例如,可以将当前工作位置设置为以下位置:
Set-Location C:\Program Files\PowerShell
因此,除非显式提供其他路径,否则将从此位置处理所有命令。
PowerShell 会为每个驱动器维护该当前工作位置,即使该驱动器不是当前驱动器也是如此。 这使得你仅仅通过引用另一位置的驱动器,便可从当前工作位置访问各个项。
例如,假设当前工作位置是 C:\Windows
。 现在,假设使用以下命令将当前工作位置更改为 HKLM:
驱动器:
Set-Location HKLM:
虽然当前位置现在是注册表驱动器,但仍可以使用 C:
驱动器访问 C:\Windows
目录中的项,如以下示例所示:
Get-ChildItem C:
PowerShell 会记住,该驱动器的当前工作位置是 Windows
目录,因此它会从该目录中检索项。 如果运行以下命令,结果将相同:
Get-ChildItem C:\Windows
在 PowerShell 中,可以使用 Get-Location
命令来确定当前工作位置,可以使用 Set-Location
命令设置当前工作位置。 例如,以下命令将当前工作位置设置为 C:
驱动器的 Windows
目录:
Set-Location C:\Windows
设置当前工作位置后,仍可通过在命令中包含驱动器名称(后跟冒号)来访问来自其他驱动器的项,如以下示例所示:
Get-ChildItem HKLM:\software
示例命令检索注册表中 HKEY_LOCAL_MACHINE
配置单元的 Software 容器中的项列表。
PowerShell 还允许使用特殊字符来表示当前工作位置及其父位置。 若要表示当前工作位置,请使用单个点。 若要表示当前工作位置的父级,则使用两个点。 例如,以下命令指定当前工作位置中的 System
子目录:
Get-ChildItem .\System
如果当前工作位置是 C:\Windows
,则此命令返回 C:\Windows\System
中所有项的列表。 但是,如果你使用两个点,则会使用当前工作目录的父目录,如以下示例所示:
Get-ChildItem ..\"Program Files"
在本例中,PowerShell 会将这两个点视为 C: 驱动器,因此该命令将检索 C:\Program Files
目录中的所有项。
以反斜杠 (\
) 开头的路径用于标识当前驱动器根目录中的某个路径。 例如,如果当前工作位置是 C:\Program Files\PowerShell
,则驱动器的根目录是 C:\
。 因此,以下命令会列出 C:\Windows
目录中的所有项:
Get-ChildItem \Windows
如果在提供容器或项的名称时未指定以驱动器名称、反斜杠 (\
) 或点 (.
) 开头的路径,则会假定该容器或项位于当前工作位置。 例如,如果当前工作位置是 C:\Windows
,则以下命令将返回 C:\Windows\System
目录中的所有项:
Get-ChildItem System
如果你指定了文件名而非目录名称,则 PowerShell 将返回有关该文件的详细信息(假设该文件位于当前工作位置)。