当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 更改目录:浏览文件系统

作者:精品下载站 日期:2024-12-14 13:13:14 浏览:16 分类:玩电脑

PowerShell 更改目录:浏览文件系统


在 Windows 中,更改目录是文件管理的基本部分,但是您愿意编写您访问的每个目录的完整路径吗?幸运的是,PowerShell 更改目录命令可以让您的生活更轻松。

在本教程中,您将探索可用于在 PowerShell 中更改目录的命令,帮助您轻松导航文件系统。

立即阅读并掌握使用 PowerShell 进行文件系统导航的基础知识!

先决条件

本教程将是一个实践演示。要继续操作,请确保您拥有安装了 PowerShell 的 Windows 系统。本教程使用 Windows 10 和 PowerShell v7。

从一个驱动器切换到另一个驱动器

每个存储设备(例如硬盘或 USB 驱动器)都会分配一个驱动器号(即 C:D:E: ,...Z:)。当您打开 PowerShell 窗口时,默认情况下提示位于当前驱动器上的用户配置文件目录中。

假设您需要频繁访问存储在与当前所在驱动器不同的驱动器上的文件或文件夹。如果是这样,则需要从一个驱动器切换到另一个驱动器。

要了解如何从一个驱动器切换到另一个驱动器:

1. 打开 PowerShell 并确认提示符是否为 C:\Users\admin如果是这样,则您当前位于 C: 驱动器上在 admin 用户的配置文件目录中,如下所示。

[玩转系统] PowerShell 更改目录:浏览文件系统

2. 接下来,以管理员身份打开另一个 PowerShell 会话。

下面,提示符在与以普通用户身份启动 PowerShell 不同的默认目录中启动。具体来说,提示符从当前驱动器 (C:) 上 Windows 目录中的 System32 目录开始,如下所示。

此默认行为可防止非管理用户意外修改关键系统文件或运行敏感工具。

[玩转系统] PowerShell 更改目录:浏览文件系统

3. 运行以下命令将当前驱动器更改为D:(或任何可用驱动器)。此语法是在 PowerShell 中在不同驱动器之间导航的快速方法。

D:

使用此方法在 PowerShell 中切换驱动器时,提示符将更改为新驱动器的根目录,如下面的输出所示。

正如您所看到的,无论 PowerShell 启动的默认目录是什么,您始终可以切换到另一个驱动器。

[玩转系统] PowerShell 更改目录:浏览文件系统

4. 现在,运行以下命令尝试切换到 D:\Kitty 目录(或任何其他子目录)。

D:\Kitty

您是否遇到了与下面相同的错误?出现此错误是因为您无法通过此方法一次性切换到子目录(例如,D:\Kitty)。

跳转到以下部分以了解如何切换到子目录。

[玩转系统] PowerShell 更改目录:浏览文件系统

通过 cd 命令浏览文件系统

导航多个子目录是 PowerShell 中的一项常见任务。但是有没有一种快速的方法来浏览不同的子目录呢?是的! cd 命令是“更改目录”的缩写,可让您快速切换到另一个子目录,而不管当前目录如何。

过去,cd 命令用于在命令提示符中的驱动器和目录之间导航。 Microsoft 使 cd 命令向后兼容,因此您仍然可以在 PowerShell 中的目录之间导航。

继续阅读并了解如何使用 cd 命令导航文件系统。

移动到不同驱动器中的目录

如果您考虑一下,跳转到不同驱动器中的子目录可能看起来很麻烦。嗯,没必要想太多。您会惊讶地发现 cd 命令让您在移动到另一个驱动器的目录之一时可以如此快速地跳转到该驱动器。

运行以下命令导航到 D:* 驱动器中名为 Kitty 的子目录。

cd D:\Kitty

[玩转系统] PowerShell 更改目录:浏览文件系统

在目录层次结构中向上移动一层到多层

通过文件系统管理或处理项目时,您可能经常需要从当前目录向上移动一到两级。 cd 命令支持 .. 表示法,可让您有效地切换到当前目录的父目录。

此功能允许您在文件系统中向上移动一个级别,而无需指定父目录的完整路径。

1. 运行下面的 cd 命令,附加一个空格和 .. 表示法,该表示法告诉 PowerShell 在目录层次结构中向上一级。

cd 命令后面的空格字符不是必需的,因为没有它该命令也可以正常工作。但添加空格是一种常见做法,可以提高可读性并与其他命令保持一致。

cd ..

在下面的输出中,您可以看到提示从 C:\Users\admin\Documents 上移一级到 C:\Users \admin 目录。请注意,您不必指定 C:\Users\admin 目录的完整路径即可向上移动。

[玩转系统] PowerShell 更改目录:浏览文件系统

2. 不要向上移动一级,而是使用两个 .. 符号运行以下命令,并在每个符号末尾附加一个反斜杠 (\)。这样做可以让您在目录层次结构中向上移动两级。

cd ..\..\

下面的输出显示您从 C:\Users\admin\Documents 直接跳转到 C:\Users 目录。

[玩转系统] PowerShell 更改目录:浏览文件系统

3. 最后,运行以下命令移动到当前驱动器的根目录。

如果您迷失在文件系统中,此命令会派上用场,因为您可以快速跳转到根目录。此命令省去了多次运行 cd .. 命令的麻烦。

cd \

[玩转系统] PowerShell 更改目录:浏览文件系统

移至特定子目录

就像在目录层次结构中向上移动一个级别一样,移动到特定的子目录也是一项快速任务。由于可能有很多子目录,因此像前面的那样附加符号(....\)将不起作用,您必须指定子目录的名称。

运行以下命令移至当前目录 (.) 中的子目录 (\admin) 之一。

cd .\admin

请注意,您节省了时间和精力,因为您不必指定 C:\Users\admin 目录的完整路径。

[玩转系统] PowerShell 更改目录:浏览文件系统

使用 PowerShell Cmdlet 导航文件系统

虽然 cd 命令无疑可以在 PowerShell 中使用,但 Microsoft 引入了许多 cmdlet,例如 Set-Location,可让您浏览文件系统。

这些 cmdlet 提供比 cd 命令更强大的功能,您可以使用它在驱动器之间切换、导航堆叠位置以及循环浏览位置历史记录中的目录。

请继续关注并见证 PowerShell cmdlet 在文件系统导航方面的强大功能。

从不同的驱动器设置位置

cd 命令类似,Set-Location cmdlet 允许您从一个目录跳转到另一个目录并直接导航到其中一个目录。但由于您使用的是 PowerShell cmdlet,因此必须附加 -Path 参数来设置目标位置的路径。

Set-Location cmdlet 将当前工作目录设置为指定位置。该指定位置可以是以下位置之一:

  • 本地文件系统上的目录或子目录。
  • PowerShell 中提供程序支持的任何其他位置。
  • 或者注册表位置。

要查看 Set-Location cmdlet 如何在文件系统中导航:

运行以下命令导航到 -Path 参数中指定的 D: 驱动器中的 Kitty 目录。

Set-Location -Path "D:\Kitty"

[玩转系统] PowerShell 更改目录:浏览文件系统

如果您觉得有点懒惰输入完整的 Set-Location cmdlet,您还可以使用它的别名之一,例如 chdirsl,导航您的文件系统。别名提供了一种更方便的方式来访问常用命令。

现在,运行以下命令将工作位置设置为特定的注册表位置。在本例中,HKLM:\ 路径(简写)指的是 Windows 注册表中的 HKEY_LOCAL_MACHINE 配置单元。

此命令将工作位置设置为注册表中 HKEY_LOCAL_MACHINE 配置单元的根目录。导航到注册表允许您通过其他 PowerShell 命令访问和修改其子项和值。

Set-Location -Path "HKLM:\”

[玩转系统] PowerShell 更改目录:浏览文件系统

在堆叠位置之间切换(推入和弹出)

快速访问堆叠位置听起来很方便。但这可能吗?是的! Push-LocationPop-Location cmdlet 允许您按照后进先出 (LIFO) 顺序从命名堆栈中推送和弹出位置。

要导航堆叠位置,请执行以下步骤:

1. 运行以下 Push-Location 命令将当前位置推送到名为 Paths 的堆栈,并设置 C:\Program Files\PowerShell\ 目录作为当前目录。

Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"

[玩转系统] PowerShell 更改目录:浏览文件系统

2. 接下来,运行以下命令将当前位置 (C:\Program Files\PowerShell\) 推送到同一 Paths 堆栈的顶部。

Push-Location -Path 'C:\Program Files\WindowsPowerShell\' -StackName "Paths"

[玩转系统] PowerShell 更改目录:浏览文件系统

3. 运行下面的每个命令将 Paths 设置为默认堆栈并查看 (Get-Location) 堆栈位置。

# Sets the Paths stack as default
Set-Location -StackName "Paths"
# View all stacked paths in the default stack
Get-Location -Stack

在下面,您可以看到当前堆叠了两个位置,其中您最后推送的位置位于顶部。

[玩转系统] PowerShell 更改目录:浏览文件系统

4. 现在,运行以下 Pop-Location 命令两次,从默认堆栈(当前为路径堆栈)中弹出顶部堆栈位置。

Pop-Location

[玩转系统] PowerShell 更改目录:浏览文件系统

请注意,从堆栈中弹出该位置会从堆栈中删除该位置。以下错误表明您已从默认堆栈中弹出所有堆栈位置。

[玩转系统] PowerShell 更改目录:浏览文件系统

导航到存储在变量中的目录

您已经使用了不同的方法来导航文件系统中的目录。但是,如果您需要频繁导航特定位置怎么办?多次键入完整路径或循环浏览位置历史记录可能会很乏味。为什么不将目录的完整路径存储在变量中呢?

通过声明的变量,您可以导航到目标目录,而无需指定路径。

1. 运行以下命令将 C:\Program Files\PowerShell\ 目录存储到 $psh 变量,并设置该位置 ($psh) 作为当前目录。

# Store a directory path to a variable
$psh = 'C:\Program Files\PowerShell\'
# Set the directory from the $psh variable as the current directory
Set-Location -Path $psh

下面的输出确认使用变量成功更改目录。无论当前目录如何,您都可以通过 $psh 变量快速导航到 C:\Program Files\PowerShell\ 目录。

但请注意,此方法仅适用于当前 PowerShell 会话,除非您保留该变量,如以下步骤所示。

[玩转系统] PowerShell 更改目录:浏览文件系统

2. 接下来,运行以下命令,这些命令不提供输出,但将 ev_psh 变量保留为环境变量 (SetEnvironmentVariable),并具有目录完整路径的值。

# Add psh as an environment variable
[System.Environment]::SetEnvironmentVariable('ev_psh', 'C:\Program Files\PowerShell\', 'Machine')
# Reload the newly-added environment variable (ev_psh)
$Env:ev_psh = [System.Environment]::GetEnvironmentVariable("ev_psh","Machine")

3. 最后,运行以下命令将 ev_psh 环境变量中的值设置为当前目录。确保您所在的目录与 ev_psh 变量中的目录不同。

Set-Location -Path $env:ev_psh

[玩转系统] PowerShell 更改目录:浏览文件系统

循环浏览 PowerShell 位置历史记录中的目录

在 PowerShell 中循环浏览目录的另一种快速方法是使用位置历史记录。 -Path 参数告诉 Set-Location cmdlet 根据指定的值 (-+)。

要循环浏览 PowerShell 位置历史记录中的目录:

运行以下命令将历史记录中的位置设置为当前目录。 + 字符可让您在位置历史记录中前进,而 - 字符可让您后退。

# Sets the system root directory as the current directory 
Set-Location -Path $env:SystemRoot

# Navigates back to the previous directory in history (certificate provider)
Set-Location -Path -

# Navigates back to the previous directory in history again (system root directory)
Set-Location -Path -

# Navigates forward to the following working directory in history (certificate provider)
Set-Location -Path +

# Navigates forward to the following working directory in history (HKEY_LOCAL_MACHINE hive)
Set-Location -Path +

[玩转系统] PowerShell 更改目录:浏览文件系统

结论

当您的选项有限时,文件系统导航可能会很棘手。但使用 PowerShell 更改目录命令(例如 Set-Location),您有很多选择。您希望如何更有效地浏览文件系统完全取决于您。

此外,掌握使用 Push-LocationPop-Location 来保存和调用最近的位置是一项宝贵的技能。

这些技术使您能够快速、无缝地在 PowerShell 中的目录和位置之间移动。但为了进一步改进,为什么不考虑学习其他命令,例如 Get-ChildItem,它可以为您在日常任务中节省大量时间?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯