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

Rohan Timalsina 2023年1月30日 2022年5月16日
  1. 在 PowerShell 中使用 Get-ChildItem 获取文件的完整路径
  2. 在 PowerShell 中使用 Select-Object 获取文件的完整路径
  3. 在 PowerShell 中使用 Format-Table 获取文件的完整路径
  4. 在 PowerShell 中使用 foreach 循环获取文件的完整路径
在 PowerShell 中获取文件的完整路径

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

你还可以在 PowerShell 中搜索文件并检查文件是否存在。文件路径告诉文件在系统上的位置。本教程将介绍不同的方法来获取 PowerShell 中文件的完整路径。

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

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

它还显示子目录及其文件。它有助于在 PowerShell 中进行递归文件搜索。

这是递归文件搜索的示例:

Get-ChildItem -Path C:\New -Filter test.txt -Recurse

上面的命令递归地在位置 C:\New 上搜索文件 test.txt。它检查给定位置内的所有目录和子目录,如果找到则显示文件的详细信息。

输出:

    Directory: C:\New\complex


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/16/2021   7:29 AM            198 test.txt

如你所见,文件 test.txt 位于目录 C:\New\complex 中。它显示文件的 PathModeLastWriteTimeLengthName

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

Get-ChildItem -Path C:\New -Filter test.txt -Recurse | %{$_.FullName}

输出:

C:\New\complex\test.txt

你可以使用*.txt-Filter 参数来获取位置 C:\New 上具有 .txt 扩展名的所有文件。

Get-ChildItem -Path C:\New -Filter *.txt -Recurse | %{$_.FullName}

输出:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

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

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

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

将使用类似的方法,但我们将使用 Select-Object cmdlet 和 Get-ChildItem 命令来获取 PowerShell 中文件的完整路径。Select-Object cmdlet 选择一个对象或一组对象的指定属性。

Get-ChildItem -Path C:\New -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName

输出:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

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

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

Get-ChildItem -Path C:\pc -Filter car.png -Recurse | Format-Table FullName

输出:

FullName
--------
C:\pc\computing\task4\car.png

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

foreach 循环在 PowerShell 中也称为 foreach 语句。它是一种语言结构,用于循环遍历数组、对象、字符串、数字等集合中的一系列值。你可以在 foreach 循环中对数组中的每个项目执行一个或多个命令。

以下是如何使用 foreach 循环在 PowerShell 中获取文件的完整路径。

Get-ChildItem -path C:\New\*.txt -Recurse | foreach { "$_" }

输出:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

上述命令不适用于 -Filter 参数。你可以通过管道连接到中间的 Get-Item cmdlet 以使用 -Filter 参数。

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

输出:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

Get-ChildItem 具有内置别名 lsdirgci。你可以使用任何句柄代替 Get-ChildItem cmdlet 来运行上述所有命令。

例如:

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

输出:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt
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