简短说明
介绍了在 PowerShell 中如何从当前工作位置访问各个项。
详细说明
当前工作位置是命令指向的默认位置。 换句话说,如果您未提供受命令影响的项或位置的显式路径,则这是 PowerShell 使用的位置。 在大多数情况下,当前工作位置是通过 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 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 将返回有关该文件的详细信息(假设该文件位于当前工作位置)。