如何在 PowerShell 中查找带扩展名的文件
-
使用
Get-ChildItem
和Filter
在 PowerShell 中查找具有扩展名的文件 -
使用
Get-ChildItem
和Include
在 PowerShell 中查找具有扩展名的文件 - 结论

PowerShell 是一个多功能且强大的工具,用于管理计算机上的文件和目录。一项常见任务是查找具有特定扩展名的文件。
在本文中,我们将探讨使用 PowerShell 中的 Get-ChildItem
cmdlet 有效查找特定扩展名文件的方法。
使用 Get-ChildItem
和 Filter
在 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-ChildItem
和 Include
在 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 环境下的文件管理变得更加高效。