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

[玩转系统] 在PowerShell中递归获取目录中的所有文件

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

在PowerShell中递归获取目录中的所有文件


[玩转系统] 在PowerShell中递归获取目录中的所有文件

在 PowerShell 中,可以使用 Get-ChildItem cmdlet 和 -Recurse 参数递归检索目录。

将 Get-ChildItem 与 Select-Object 结合使用:

Get-ChildItem -Path "D:\Content Writing" -Recurse

输出 :

    Directory: D:\Content Writing

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        09-04-2023     16:57                test1
d-----        09-04-2023     16:58                test2

    Directory: D:\Content Writing\test1

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        09-04-2023     16:57              7 file1.md
-a----        09-04-2023     16:57              7 file2.md
-a----        09-04-2023     16:57              7 file3.md

    Directory: D:\Content Writing\Directory\test2

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        09-04-2023     16:57              7 file4.md
-a----        09-04-2023     16:57              7 file5.md

如果您想在 PowerShell 中获取当前目录中的所有文件,可以使用以下命令:

将 Get-ChildItem 与 Select-Object 结合使用:

Get-ChildItem -Recurse

还可以使用 -Exclude 参数排除文件夹和文件。

首先,看看本文中将用于不同目的的参数和 cmdlet 的用途:

  • PowerShell 中的 Get-ChildItem cmdlet 可检索递归目录和文件列表。
  • -Recurse 用于递归地检索目录,这意味着将检索所有文件、文件夹和子文件夹。
  • 使用 -Exclude 参数排除特定文件和文件夹。您可以修改 -Exclude 参数以包含多个文件和文件夹名称,并用逗号分隔它们
  • Select-Object cmdlet 仅显示每个项目的 FullName 属性,这是文件或文件夹的完整路径。

让我们深入研究示例,了解每个 cmdlet 的使用以及上面讨论的参数。

使用 Get-ChildItem Cmdlet

我们可以使用 Get-ChildItem cmdlet 执行以下操作:

  • 递归检索目录
  • 从目录中排除特定文件
  • 从目录中排除特定文件夹
  • 从目录中排除相同类型或扩展名的文件

请看下面的例子来学习。

使用 Get-ChildItem 以及 -Recurse 参数和 Select-Object cmdlet 以递归方式检索目录。

将 Get-ChildItem 与 Select-Object 结合使用:

Get-ChildItem -Path "D:\Content Writing" -Recurse | Select-Object FullName

输出 :

FullName
--------
D:\Content Writing\test1
D:\Content Writing\test2
D:\Content Writing\test1\file1.md
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.md

使用 Get-ChildItem-Recurse-Exclude 参数以及 Select-Object cmdlet 来检索递归地完成文件夹及其子文件夹,但不包括 file1.txt 文件。

将 Get-ChildItem 与 Select-Object 结合使用:

Get-ChildItem -Path "D:\Content Writing" -Recurse -Exclude "file1.md" | Select-Object FullName

输出 :

FullName
--------
D:\Content Writing\test1
D:\Content Writing\test2
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.md

Get-ChildItem-Recurse-Exclude 参数以及 Select-Object cmdlet 结合使用来检索递归完成文件夹及其子文件夹,但不包括 test2 文件夹。

将 Get-ChildItem 与 Select-Object 结合使用:

Get-ChildItem -Path "D:\folder" -Recurse -Exclude "test2" | Select-Object FullName

输出 :

FullName
--------
D:\Content Writing\test1
D:\Content Writing\test1\file1.md
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.md

上述命令将排除指定的文件夹,而不是其子文件夹或文件。如您所见,我们从 test2 文件夹中检索了 file4.docxfile5.docx 文件的位置,但没有检索到 >test2 文件夹本身。

Get-ChildItem-Recurse-Exclude 参数以及 Select-Object cmdlet 结合使用来检索递归完整文件夹及其子文件夹,但排除相同类型或扩展名的文件。

将 Get-ChildItem 与 Select-Object 结合使用:

Get-ChildItem -Path "D:\Content Writing" -Recurse -Exclude *.md | Select-Object FullName

输出 :

D:\Content Writing\test1
D:\Content Writing\test2

这就是如何在 PowerShell 中递归获取目录中的所有文件。

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

取消回复欢迎 发表评论:

关灯