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

[玩转系统] PowerShell - 列出目录中的文件

作者:精品下载站 日期:2024-12-14 16:36:00 浏览:15 分类:玩电脑

PowerShell - 列出目录中的文件


在我最近的一项任务中,我必须处理本地系统上基于文件和文件夹的操作。如果您有很多文件或目录需要查找,则使用手动方式进行基于文件或文件夹的操作是一个非常繁琐的过程。

使用 PowerShell,可以非常轻松地列出目录中的文件或根据过滤条件列出文件夹。

PowerShell PIsContainer 到目录中文件系统对象中 PIsContainer 属性设置为 $false 的文件列表。文件夹或目录的容器中的 PSIContainer 属性设置为 $true

PowerShell Get-ChildItem cmdlet 返回文件系统根目录中的文件或文件夹。

使用PowerShell PSIContainer,可以非常轻松地仅获取目录中的文件或仅选择文件夹。

在本文中,我将通过不同的示例解释如何使用 PowerShell PSISContainer 来列出目录或列表目录中的文件,或仅列出特殊文件夹。

PowerShell PSIsContainer 列出文件夹和子文件夹

PowerShell Get-ChildItem cmdlet 仅获取文件和文件夹。

要获取文件系统中的文件夹和子文件夹列表,请使用基于 PSIsContainer 属性设置为 $true 的文件夹的过滤器

PS C:\> Get-ChildItem -Path D:\PowerShell -Recurse | Where-Object {$_.PSIsContainer} 

在上面的 PowerShell 脚本中,Get-ChildItem 递归地返回文件和文件夹,并将其输出传递给另一个命令。

在第二个命令中,它检查 PowerShell PSISContainer 属性设置为 $true 的文件夹,并获取文件系统中的文件夹和子文件夹的列表。

酷提示: Get-ChildItem cmdlet - 在 PowerShell 中搜索文件!

PowerShell 列出目录中的文件

要获取目录中的文件列表,请使用基于 PowerShell PSISContainer 属性设置为 $false 的文件的筛选器。

使用以下命令列出目录和子目录中的所有文件

PS C:\> Get-ChildItem -Path D:\PowerShell\Excel\ -Recurse | Where-Object {$_.PSIsContainer -eq $false}  

上述 PowerShell 脚本使用 PowerShell Get-ChildItem cmdlet,它返回文件和文件夹。

它将输出传递到另一个命令,在该命令中检查 PowerShell PSIContainer 属性是否等于 false 以仅过滤文件。

它返回目录和子目录中的文件列表,打印文件及其模式、LastWriteTime、文件大小和文件名

上述命令的输出

PS C:\> Get-ChildItem -Path D:\PowerShell\Excel\ -Recurse | Where-Object {$_.PSIsContainer -eq $false}                                                                                       

    Directory: D:\PowerShell\Excel


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       05-10-2020     21:14            559 DownloadZipFile-Unzip.ps1
-a----       08-10-2020     09:40            105 import-csv.ps1
-a----       04-10-2020     17:06            199 IsModuleInstalled.ps1
-a----       24-10-2020     20:08            598 ping-computers.ps1
-a----       10-10-2020     19:37            139 quser.ps1
-a----       04-10-2020     17:05            911 rename-adgroup.ps1
-a----       04-10-2020     13:22            861 search-excel.ps1
-a----       06-10-2020     19:06             25 throw.ps1
-a----       06-10-2020     18:09            182 Unzip-file.ps1


PS C:\>  

酷提示:在 PowerShell 中获取内存使用情况!

PowerShell PSIsContainer 获取没有文件的文件夹

要获取其中没有文件的文件夹和子文件夹,请使用 PowerShell PSISContainer 使用所有文件系统对象的属性来仅选择该属性设置为 true 的文件夹。

使用 GetFiles().Count 属性获取文件计数。

PS C:\> Get-ChildItem -Path D:\PowerShell -Recurse | Where-Object {$_.PSIsContainer -eq $true} | Where-Object {$_.GetFiles().Count -eq 0} 

在上面的 PowerShell 脚本中,Get-ChildItem cmdlet 递归地返回文件和文件夹,并将其输出传递给另一个命令。

第二个命令检查 PowerShell PSISContainer 属性是否为 true 以仅过滤目录并将其输出传递给下一个命令

第三条命令,获取每个文件夹的文件计数并检查它是否等于 0 并返回没有文件的文件夹。

酷提示:如何修复 PowerShell 脚本没有数字签名!

结论

如果文件系统对象的 PSIContainer 属性中的属性设置为 $false,则使用文件系统对象的 PowerShell PSISContainer 属性选择文件;如果 PSIContainer 属性中的属性设置为 $true,则选择文件夹。

使用 PowerShell Get-ChildItem cmdlet 和 PSIsContainer 列出目录中的文件或列出目录和子目录中的所有文件。

酷提示:如何在 PowerShell 中列出按日期排序的文件!

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

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

取消回复欢迎 发表评论:

关灯