迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

使用 PowerShell 过滤文件和文件夹

作者:迹忆客 最近更新:2024/02/01 浏览次数:

在某些情况下,我们需要检查文件是否存在于特定位置或目录中。虽然我们可以使用旧命令 dir,但仅导出特定文件是不够的。对于这个用例,我们可以使用 Windows PowerShell 的 Get-ChildItem cmdlet。

本文将讨论 PowerShell Get-ChildItem cmdlet,我们将使用它来获取目录中的所有项目并利用其过滤器开关参数。

Windows PowerShell Get-ChildItem cmdlet 获取特定位置或目录中的子项。例如,在 cmdlet 中指定的位置可以是文件系统目录、注册表或证书存储。此外,提到的子项可以是另一个目录、子文件夹或文件。

Get-ChildItem -Path C:\Temp

在上述命令中,Get-ChildItem 从使用 -Path 参数指定的路径获取子项。

Get-ChildItem cmdlet 执行时,在 PowerShell 控制台上显示文件、目录及其 ModeLastWriteTimeLength(文件大小)和 Name 属性。

Mode                 LastWriteTime         Length Name                                
----                 -------------         ------ ----
d----l        18/01/2022   8:52 pm                WindowsPowerShell
d----l        20/12/2021   3:36 pm                Zoom
-a---l        30/12/2020   3:23 pm          (151) backup phrase.txt
-a---l        17/06/2021   3:13 am       (410049) CEF1750.pdf
-a---l        16/05/2020   3:32 am          (677) default.cpu1
-a---l        21/08/2019   9:06 am         (2240) Default.rdp
-a---l        26/05/2021   8:24 am        (63399) e-sig.jpg
-a---l        09/03/2020  10:48 pm          (143) fan config.sfsm
-a---l        19/09/2020  12:07 pm    (279515089) MCSA.rar

在 PowerShell 中使用 Get-ChildItem Cmdlet 过滤文件

我们可以使用 -File 开关参数仅返回路径或目录内的文件。

示例代码:

Get-ChildItem -Path C:\Temp -File

输出:

Mode                 LastWriteTime         Length Name                                
----                 -------------         ------ ----
-a---l        30/12/2020   3:23 pm          (151) backup phrase.txt 
-a---l        17/06/2021   3:13 am       (410049) CEF1750.pdf
-a---l        16/05/2020   3:32 am          (677) default.cpu1
-a---l        21/08/2019   9:06 am         (2240) Default.rdp
-a---l        26/05/2021   8:24 am        (63399) e-sig.jpg
-a---l        09/03/2020  10:48 pm          (143) fan config.sfsm
-a---l        19/09/2020  12:07 pm    (279515089) MCSA.rar

Get-ChildItem 别名

Windows PowerShell 为 Get-ChildItem cmdlet 使用默认的内置别名 gci。就像下面的示例片段一样,你可以使用别名而不是 cmdlet 来实现更快和无缝的脚本编写。

示例代码:

gci -Path C:\Temp -File

在 PowerShell 中使用 Get-ChildItem Cmdlet 获取子目录中的所有文件

如果我们想获取目录和子目录中的所有文件,请使用 -Recurse 开关参数。

示例代码:

gci -Path C:\Temp -Recurse - Force -File

在 PowerShell 中使用 Get-ChildItem Cmdlet 过滤具有特定条件的文件

使用 -Filter 参数,我们可以使用单个表达式过滤掉结果。 -Filter 参数不需要 -Path 参数,因为它将使用你当前的工作目录。

示例代码:

gci -Filter C:\Temp\* -Filter *.txt 

我们还可以使用 -Include 开关参数,它接受多个条件,这是 -Filter 参数的一个绝佳优势。但是,请记住 -Include 参数需要 -Path 参数出现在表达式中。

示例代码:

gci -Path C:\Temp\* -File -Include CEF*.pdf, *.txt 

除了接受多个条件之外,-Include 参数与正则表达式配合得很好,因此使其成为比 -Filter 参数更通用的方法。

输出:

Mode                 LastWriteTime         Length Name                                
----                 -------------         ------ ----
-a---l        30/12/2020   3:23 pm          (151) backup phrase.txt
-a---l        17/06/2021   3:13 am       (410049) CEF1750.pdf

上一篇:PowerShell 通过网络复制文件

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

PowerShell 通过网络复制文件

发布时间:2024/02/05 浏览次数:162 分类:编程语言

本教程将教你使用 PowerShell 通过网络共享复制文件。PowerShell 是一个强大的工具,可让你从其命令行界面执行不同的文件和文件夹操作。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便