Powershell使用“创建CSV文件”_lowRes.jpg“;具有一定的文件大小

Powershell使用“创建CSV文件”_lowRes.jpg“;具有一定的文件大小,powershell,csv,search,directory,filenames,Powershell,Csv,Search,Directory,Filenames,我正在尝试创建一个目录及其子目录中所有jpg的CSV文件,该目录及其子目录的大小超过100KB,后缀为“_lowRes.jpg” 想要使用Powershell 有什么帮助吗?这其实很简单 您将使用两个单独的过滤器来完成此操作,PowerShell通过Where-Objectcmdlet实现这一功能。此cmdlet接受{$\u.PropertyName-eq“Something”}或PropertyName-eq“Something”格式的比较。更高版本的格式仅在PowerShell v3及更高版

我正在尝试创建一个目录及其子目录中所有jpg的CSV文件,该目录及其子目录的大小超过100KB,后缀为“_lowRes.jpg”

想要使用Powershell


有什么帮助吗?

这其实很简单

您将使用两个单独的过滤器来完成此操作,PowerShell通过
Where-Object
cmdlet实现这一功能。此cmdlet接受
{$\u.PropertyName-eq“Something”}
PropertyName-eq“Something”
格式的比较。更高版本的格式仅在PowerShell v3及更高版本上可用

首先,只过滤100KB以上的文件

其中对象长度-ge 100KB

第二部分,其中文件名包含一些内容

Where对象名-如“*lowRes.jpg*”

你可以加入他们,但我会像这样把一个管道插入另一个管道

dir*.jpg-Recurse | Where Object Length-ge 100KB | Where Object Name-like“*lowRes.jpg*”

您可能希望将名称筛选放在首位,因为具有特定名称的文件比大于或小于特定大小的文件要少。取决于文件的布局方式


最后,将所有这些导入
导出Csv
cmdlet和bam,完成了

您可以这样做:

Get-ChildItem "C:\temp" -Recurse -file -filter "*_lowRes.jpg" | 
                 Where Length -ge 100KB | select fullname, Length |
                                export-csv "c:\temp\result.csv" -NoType
简短版本(适用于非纯粹主义者):


您将
语句拆分为Where
语句是有原因的,还是出于个人偏好<代码>另外,我想说的是,我非常喜欢你关于如何制作GUI和线程脚本的系列博客文章<代码>我将它们拆分,因为您无法加入where语句并维护新的易于阅读的语法。我喜欢新的语法,所以我添加了使用两个单独命令的低效性。有些人不同意,这很好,但我只是觉得它更容易阅读和解释。我很高兴你喜欢这个网站。如果您想让我介绍某个主题,请告诉我:)您可以这样做:where{$\u.Length-ge 100KB-和$\u.Name-like“*lowRes.jpg”}如果使用2 where,我怀疑性能。过滤器可以在gci命令中使用,其性能更好。如果你有一个名为“toto.jpg”的目录,你也可以使用它
gci "C:\temp" -Rec -file -filter "*_lowRes.jpg" | ? L -le 100KB | select fu*, le* | epcsv "c:\temp\result.csv" -Not