如何在 PowerShell 中查找带扩展名的文件

  1. 使用 Get-ChildItemFilter 在 PowerShell 中查找具有扩展名的文件
  2. 使用 Get-ChildItemInclude 在 PowerShell 中查找具有扩展名的文件
  3. 结论
如何在 PowerShell 中查找带扩展名的文件

PowerShell 是一个多功能且强大的工具,用于管理计算机上的文件和目录。一项常见任务是查找具有特定扩展名的文件。

在本文中,我们将探讨使用 PowerShell 中的 Get-ChildItem cmdlet 有效查找特定扩展名文件的方法。

使用 Get-ChildItemFilter 在 PowerShell 中查找具有扩展名的文件

PowerShell 环境中的 Get-ChildItem 命令从指定位置获取项。一个项可以位于一个容器中,而容器通常是一个文件夹。

此外,Get-ChildItem 使用 -Recurse 参数从子容器或子容器中获取项。它还包括一个 -Filter 参数,使用星号(*)通配符获取所有具有特定扩展名的文件。

语法:

Get-ChildItem -Path "File Path" -Recurse -File -Filter *.txt

参数:

  • -Path "File Path":指定搜索的起始目录,我们将在此查找特定扩展名。
  • -Recurse:将搜索扩展到子目录,提供全面搜索。
  • -File:专注于文件而非目录,确保仅返回文件。
  • -Filter *.txt:将过滤器设置为具有 ".txt" 扩展名的文件。星号(*)匹配 ".txt" 之前的任何字符。

让我们举个例子。以下命令查找所有 .txt 扩展名的文件。

Get-ChildItem "C:\Files\"  -Recurse -File -Filter *.txt

在该命令中,我们通过在 "C:\Files" 目录上使用 Get-ChildItem cmdlet 开始搜索,这使我们能够收集该位置内的项的信息,无论它们是文件还是目录。为了将搜索扩展到所有子目录,我们包括了 -Recurse 参数。

然后,为了指定我们感兴趣的是文件而非目录,我们添加了 -File 参数。最后,我们使用 -Filter *.txt 定义过滤条件,查找以 ".txt" 结尾的文件,星号(*)作为通配符字符,用于匹配在它之前的任何字符。

这样,我们有效地指示 PowerShell 查找所有以 ".txt" 结尾的文件。

输出:

Directory: C:\Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file1.txt
-a----         5/15/2022  11:02 PM              0 file2.txt
-a----         5/15/2022  11:02 PM              0 file3.txt

    Directory: C:\Files\Misc files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:05 PM              0 file8.txt

    Directory: C:\Files\More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file4.txt

    Directory: C:\Files\More Files\Some More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:03 PM              0 file6.txt

我们可以向 Get-ChildItem 添加 -Name 参数,以仅输出文件的路径,而不是详细输出。

Get-ChildItem "C:\Files\"  -Recurse -File -Name -Filter *.txt

输出:

file1.txt
file2.txt
file3.txt
Misc files\file8.txt
More Files\file4.txt
More Files\Some More Files\file6.txt

我们可以看到,在输出中,它仅显示文件的名称和路径,这是在执行带有 -Name 参数的命令后得到的。

使用 Get-ChildItemInclude 在 PowerShell 中查找具有扩展名的文件

Get-ChildItem 命令使用 -Include 参数,该参数接受一个或多个字符串模式以包括匹配的项。

语法:

Get-ChildItem "File Path" -Recurse -File -Name -Include *.txt
  • -Path "File Path":指定搜索的起始目录,寻找特定扩展名的文件。
  • -Recurse:将搜索扩展到所有子目录,确保全面搜索。
  • -File:仅专注于文件,将目录排除在结果之外。
  • -Name:仅在输出中列出文件名称,不提供详细的文件信息。
  • -Include *.txt:过滤并检索结果中具有 ".txt" 扩展名的文件。

在没有 -Recurse 标志的情况下,需要在文件路径后添加尾随星号(*)。在这种情况下,它只列出 Files 文件夹中的 .txt 文件。

Get-ChildItem "C:\Files\*" -File -Name -Include *.txt

在该命令中,我们使用 Get-ChildItem cmdlet 在 "C:\Files" 目录及其所有子目录中启动文件查找。为了定位具有 ".txt" 扩展名的文件,我们应用了一系列参数。

我们首先设置路径为 "C:\Files\*", 这包括 "C:\Files" 下的所有子目录。通过添加 -File 参数,我们仅关注文件,排除目录。

-Name 参数优化了我们的输出,仅显示文件名称,而 -Include *.txt 参数通过过滤具有 ".txt" 扩展名的文件来精细化搜索。

输出:

file1.txt
file2.txt
file3.txt

输出表示具有 ".txt" 扩展名的文件名称列表,这与我们在 PowerShell 命令中指定的标准相匹配。

结论

在本文中,我们探讨了如何有效使用 PowerShell 中的 Get-ChildItem cmdlet 来查找这些文件的方法。我们涵盖了两种方法:使用 -Filter 参数进行精准搜索和使用 -Include 参数进行灵活搜索。

这些技术可以简化数据分析和组织等任务,使 Windows 环境下的文件管理变得更加高效。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe

相关文章 - PowerShell File