about_Locations

简短说明

介绍如何在 PowerShell 中从工作位置访问项。

长说明

当前工作位置是命令指向的默认位置。 换句话说,如果未提供受命令影响的项或位置的显式路径,则 PowerShell 将使用此位置。

注意

PowerShell 支持每个进程多个运行空间。 每个运行空间都有自己的 当前目录。 这与进程的当前目录不同: [System.Environment]::CurrentDirectory

在大多数情况下,当前工作位置是通过 PowerShell FileSystem 提供程序访问的驱动器,在某些情况下是该驱动器上的目录。 例如,可以将当前工作位置设置为以下位置:

C:\Program Files\Windows 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 本地计算机配置单元的软件容器中的项列表。

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 会返回有关该文件的详细信息, (假定该文件位于当前工作位置) 。

另请参阅