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

[玩转系统] PowerShell 按名称查找文件 [6 种方式]

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

PowerShell 按名称查找文件 [6 种方式]


[玩转系统] PowerShell 按名称查找文件 [6 种方式]

使用 Get-ChildItem Cmdlet

使用带有 -Path-Filter 参数的 Get-ChildItem cmdlet 在 PowerShell 中查找给定路径中的指定文件和目录.

使用 Get-ChildItem Cmdlet:

Get-ChildItem -Path "E:\Test" -Filter "file*"

输出 :

Directory: E:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         4/25/2023   7:22 AM                File
-a----         3/10/2023  12:42 AM          33629 file - Copy.doc
-a----         3/11/2023  10:31 PM         165792 file - Copy.pdf
-a----         3/10/2023  12:42 AM          33629 file.docx
-a----         3/11/2023  10:31 PM         165792 file.pdf
-a----          4/6/2023   5:50 AM            168 file.ps1
-a----         3/28/2023   3:59 PM            652 file.txt
-a----         4/16/2023   9:49 PM          48898 file1.txt
-a----         3/28/2023   3:39 PM             23 file2.txt
-a----          3/7/2023   8:16 AM             57 file4.txt
-a----         3/28/2023  12:18 PM             70 filessss.txt
-a----         3/28/2023  12:18 PM             54 filez.txt

Get-ChildItem 从一个或多个路径(位置)检索项目和子项目。 -Path 参数用于指定一个或多个位置路径;使用此参数时我们还可以使用通配符。 -Path 参数的默认位置是当前目录 (.)。

-Filter 参数根据通配符或模式过滤指定位置的文件和目录。请注意,-Filter 参数比 -Exclude-Include 参数更快,因为它在服务器端而不是客户端进行过滤。此外,这意味着 PowerShell 提供程序执行过滤;例如,文件系统提供程序而不是 PowerShell 引擎。

上述命令在E:\Test路径下搜索所有以file开头的文件和目录; * 通配符表示至少一个或多个字符。

使用带有 -File 参数的 Get-ChildItem Cmdlet

使用带有 -Path-Filter-File 参数的 Get-ChildItem cmdlet 来检索仅来自 PowerShell 中指定路径的文件。

使用 Get-ChildItem -File 参数:

Get-ChildItem -Path "E:\Test" -Filter "file*" -File

输出 :

Directory: E:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         3/10/2023  12:42 AM          33629 file - Copy.doc
-a----         3/11/2023  10:31 PM         165792 file - Copy.pdf
-a----         3/10/2023  12:42 AM          33629 file.docx
-a----         3/11/2023  10:31 PM         165792 file.pdf
-a----          4/6/2023   5:50 AM            168 file.ps1
-a----         3/28/2023   3:59 PM            652 file.txt
-a----         4/16/2023   9:49 PM          48898 file1.txt
-a----         3/28/2023   3:39 PM             23 file2.txt
-a----          3/7/2023   8:16 AM             57 file4.txt
-a----         3/28/2023  12:18 PM             70 filessss.txt
-a----         3/28/2023  12:18 PM             54 filez.txt

这次,该命令检索了名称以 file 开头的所有文件。请记住,-File 参数仅在文件系统提供程序中可用。

在上面的示例中,我们从 E:\Test 路径获取文件,但我们可以使用 -Recurse 参数检索给定目录及其子目录中的所有文件;请参阅以下部分。

使用带有 -Recurse 参数的 Get-ChildItem Cmdlet

Get-ChildItem cmdlet 与 -Path-Filter-File 结合使用>-Recurse 参数仅从 PowerShell 中的指定目录及其子目录检索文件。

将 Get-ChildItem 与 -Recurse 参数结合使用:

Get-ChildItem -Path "E:\Test" -Filter "file*" -File -Recurse

输出 :

Directory: E:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         3/10/2023  12:42 AM          33629 file - Copy.doc
-a----         3/11/2023  10:31 PM         165792 file - Copy.pdf
-a----         3/10/2023  12:42 AM          33629 file.docx
-a----         3/11/2023  10:31 PM         165792 file.pdf
-a----          4/6/2023   5:50 AM            168 file.ps1
-a----         3/28/2023   3:59 PM            652 file.txt
-a----         4/16/2023   9:49 PM          48898 file1.txt
-a----         3/28/2023   3:39 PM             23 file2.txt
-a----          3/7/2023   8:16 AM             57 file4.txt
-a----         3/28/2023  12:18 PM             70 filessss.txt
-a----         3/28/2023  12:18 PM             54 filez.txt

Directory: E:\Test\Sample Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         3/28/2023   3:59 PM            652 file.txt
-a----         3/28/2023   4:00 PM             73 file1.txt
-a----         3/28/2023   3:39 PM             23 file2.txt

Directory: E:\Test\Sample Files\FolderA

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         3/28/2023   3:59 PM            652 file.txt

我们从E:\TestE:\Test\Sample FilesE:\Test\Sample Files中获取了所有名称以file开头的文件。 >E:\Test\Sample Files\FolderA 目录。因此,我们可以将-Filter参数映射到file*.txt来获取所有名称以开头的.txt文件文件;请参见以下示例。

将 Get-ChildItem 与 -Recurse 参数结合使用:

Get-ChildItem -Path "E:\Test" -Filter "file*.txt" -File -Recurse

输出 :

Directory: E:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         3/28/2023   3:59 PM            652 file.txt
-a----         4/16/2023   9:49 PM          48898 file1.txt
-a----         3/28/2023   3:39 PM             23 file2.txt
-a----          3/7/2023   8:16 AM             57 file4.txt
-a----         3/28/2023  12:18 PM             70 filessss.txt
-a----         3/28/2023  12:18 PM             54 filez.txt

Directory: E:\Test\Sample Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         3/28/2023   3:59 PM            652 file.txt
-a----         3/28/2023   4:00 PM             73 file1.txt
-a----         3/28/2023   3:39 PM             23 file2.txt

Directory: E:\Test\Sample Files\FolderA

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         3/28/2023   3:59 PM            652 file.txt

查看上面输出中的目录。 E:\Test 为目录,E:\Test\Sample Files 为第一级子目录,E:\Test\Sample Files\FolderA

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

取消回复欢迎 发表评论:

关灯