如何在 PowerShell 中获取文件的完整路径

  1. 使用 Get-ChildItem 获取 PowerShell 中文件的完整路径
  2. 使用 Select-Object 获取 PowerShell 中文件的完整路径
  3. 使用 Format-Table 获取 PowerShell 中文件的完整路径
  4. 使用 foreach 循环获取 PowerShell 中文件的完整路径
  5. 使用 Format-List 获取 PowerShell 中文件的完整路径
  6. 结论
如何在 PowerShell 中获取文件的完整路径

PowerShell 有多种 cmdlet 用于管理系统上的文件。您可以使用 PowerShell 创建、复制、移动、重命名和删除文件。

您还可以在 PowerShell 中搜索文件并检查文件的存在性。文件路径指示文件在系统上的位置。

本教程将介绍不同的方法,以获取 PowerShell 中文件的完整路径。

使用 Get-ChildItem 获取 PowerShell 中文件的完整路径

Get-ChildItem cmdlet 显示指定位置文件和目录的列表。您可以使用 -Recurse 参数递归列出所有文件和目录。

它还显示子目录及其文件。这对于在 PowerShell 中进行递归文件搜索非常有用。

这种方法通常用于需要对分布在文件夹层次结构中的一组文件执行操作的场景,例如文件搜索、批处理或数据组织任务。

示例:

Get-ChildItem -Path C:\ExampleDirectory -Filter *.txt -Recurse

我们首先通过 -Path C:\ExampleDirectory 指定我们的根目录。这个选择建立了我们搜索的起点,确保我们在正确的地方查找。

接下来,我们引入 -Filter *.txt 参数。这是我们的一项战略举措,因为它显著缩小了我们的搜索范围,仅限于那些具有 .txt 扩展名的文件。

通过这样做,我们有效地避开了大量无关文件,使我们的脚本更加专注,执行更快。

我们脚本中的真实改变者是 -Recurse 参数。在这里,我们利用了 PowerShell 深入目录结构的能力。

使用 -Recurse,我们不仅仅是在 C:\ExampleDirectory 的表面滑行;我们正在探索每一个角落和缝隙,每一个子目录,无论它多么深层嵌套。

输出:

在 PowerShell 中获取文件的完整路径 - 输出 1

您可以通过将命令传递到 %{$_.FullName} 来获取文件的完整路径。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter sample.txt -Recurse | % { $_.FullName }

输出:

在 PowerShell 中获取文件的完整路径 - 输出 2

或者,您可以使用该命令获取指定位置上所有具有 .txt 扩展名的文件及其路径。

示例:

Get-ChildItem -Path ExampleDirectory\ -Recurse | where { $_.extension -eq ".txt" } | % { $_.FullName }

输出:

在 PowerShell 中获取文件的完整路径 - 输出 3

使用 Select-Object 获取 PowerShell 中文件的完整路径

将使用类似的方法,但我们将使用 Select-Object cmdlet 与 Get-ChildItem 命令结合以获取 PowerShell 中文件的完整路径。

Select-Object cmdlet 选择对象或对象集的指定属性。这种技术在需要审计文件系统、管理数据或执行清理操作的场景中特别有用。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName

通过这个脚本,我们结合利用 Get-ChildItemSelect-Object 的力量高效地定位和列出 .txt 文件。从 ExampleDirectory\ 开始我们的搜索,确保所有相关的子目录都被包含在内。

-Filter *.txt 是一个关键组件,使我们能够仅关注 .txt 文件,从而简化我们的搜索。

通过使用 -Recurse,我们不仅在表面进行搜索;我们深入每一个子目录,确保没有文件被遗漏。通过 | Select-Object -ExpandProperty FullName 发生了魔法,它将我们的输出精炼为只显示必要的内容——文件的完整路径。

输出:

在 PowerShell 中获取文件的完整路径 - 输出 4

使用 Format-Table 获取 PowerShell 中文件的完整路径

同样,您可以使用 Format-Table 来获取 PowerShell 中文件的完整路径。Format-Table cmdlet 将输出格式化为带有对象选定属性的表格。

Get-ChildItem cmdlet 与 Format-Table 配对时,它不仅成为检索文件路径的强大工具,而且还以有组织、易读的格式呈现它们。这种方法特别适合那些需要快速评估和报告其文件系统结构的人。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-Table FullName

在这个脚本中,我们有策略地利用 Get-ChildItem 搜索 ExampleDirectory\ 及其子目录中的 .txt 文件。-Filter *.txt 参数是关键,因为它确保我们的搜索是专注的和高效的,忽略不相关的文件类型。

-Recurse 标志对于彻底搜索至关重要,确保没有子目录被遗漏。

搜索完成后,我们使用 | Format-Table FullName 将我们的发现转变为一个结构良好的表格。这不仅增强了可读性,还提供了完整路径的清晰结构视图。

输出:

在 PowerShell 中获取文件的完整路径 - 输出 5

使用 foreach 循环获取 PowerShell 中文件的完整路径

foreach 循环在 PowerShell 中也称为 foreach 语句。它是一种语言构造,用于遍历集合中的一系列值,比如数组、对象、字符串、数字等。

您可以在 foreach 循环中针对数组中的每个项目执行一个或多个命令。

示例:

Get-ChildItem -Path ExampleDirectory\*.txt -Recurse | foreach { "$_" }

在这个脚本中,我们开始时部署 Get-ChildItemExampleDirectory\ 中仔细搜索 .txt 文件。

加入 -Recurse 确保对所有层次的子目录进行全面搜索。遇到的每个文件随后被传入 foreach 循环。

在这个循环中,$_ 作为当前文件的占位符。通过将 $_ 包含在引号中并输出它,我们指示 PowerShell 显示每个文件的完整路径。

这种方法不仅仅是为了检索数据;它是逐步遍历每个文件,提供在循环中添加更复杂操作的灵活性。

输出:

在 PowerShell 中获取文件的完整路径 - 输出 6

上述命令不适用于 -Filter 参数。您可以将 Get-Item cmdlet 在中间传递,以使用 -Filter 参数。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Get-Item | foreach { "$_" }

在管道中增加 Get-Item 是一个关键步骤,因为它允许有效利用 -Filter 参数,确保仅处理 .txt 文件。

输出:

在 PowerShell 中获取文件的完整路径 - 输出 7

Get-ChildItem 有内置别名 lsdirgci。您可以通过使用任何这些别名来运行上述所有命令,替代 Get-ChildItem cmdlet。

示例:

gci -Path ExampleDirectory\ -Filter *.txt -Recurse | % { $_.FullName }

在使用别名时,该命令变得更加简洁,同时仍保持其功能性。来自不同背景的用户(如 Unix/Linux 或较旧的 Windows 命令行)可能更熟悉 lsdir

输出:

在 PowerShell 中获取文件的完整路径 - 输出 8

使用 Format-List 获取 PowerShell 中文件的完整路径

Get-ChildItem cmdlet 在浏览和检索有关文件和目录的信息时非常灵活。当与 -Filter 参数一起使用时,它可以特定地针对某种类型的文件,如 .txt 文件。

另一方面,Format-List 以列表格式显示对象的属性。当与 Get-ChildItem 结合使用时,可以用来以清晰、可读的列表形式呈现文件路径。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-List FullName

在我们的代码中,我们使用 Get-ChildItem 彻底搜索 ExampleDirectory\ 及其子目录(-Recurse)中的 .txt 扩展文件(-Filter *.txt)。每个发现的文件通过管道(|)无缝传输到 Format-List cmdlet。

我们专注于提取每个文件的 FullName 属性,表示其完整路径。这种方法特别有效,用于创建一个结构良好且易读的文件路径列表。

输出:

在 PowerShell 中获取文件的完整路径 - 输出 9

结论

最后,PowerShell 提供了丰富的 cmdlet 以实现高效的文件管理。在本文中,我们探讨了使用 PowerShell 检索文件完整路径的各种方法,特别是结合 Get-ChildItem cmdlet 与其他 cmdlet,如 Format-ListSelect-ObjectFormat-Table

这些技术对于涉及文件系统审计、数据管理和批处理的任务都是无价的。我们讨论的每种方法提供了一种独特的方法来处理文件路径,无论是过滤特定文件类型、以格式化表格列出路径,还是使用 foreach 循环遍历文件。

对于希望深化其 PowerShell 专业知识的读者,下一步可能涉及探索更高级的文件操作技术,深入了解用于自动化的 PowerShell 脚本,或者甚至将 PowerShell 命令与其他工具和脚本集成以实现更复杂的工作流程。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相关文章 - PowerShell File