【发布时间】:2017-06-04 10:15:03
【问题描述】:
我正在尝试创建一个包含 100 KB 以上且后缀为“_lowRes.jpg”的目录及其子目录中所有 jpg 的 CSV 文件。
想用 Powershell。
有什么帮助吗?
【问题讨论】:
标签: powershell csv search directory filenames
我正在尝试创建一个包含 100 KB 以上且后缀为“_lowRes.jpg”的目录及其子目录中所有 jpg 的 CSV 文件。
想用 Powershell。
有什么帮助吗?
【问题讨论】:
标签: powershell csv search directory filenames
其实这很简单!
您将使用两个单独的过滤器来执行此操作,PowerShell 通过 Where-Object cmdlet 实现。此 cmdlet 接受 {$_.PropertyName -eq "Something"} 或 PropertyName -eq "Something" 格式的比较。后一种格式仅适用于 PowerShell v3 及更高版本。
首先,过滤到 100KB 以上的文件。
Where-Object Length -ge 100KB
第二部分,文件名包含一些东西。
Where-object Name -like "*lowRes.jpg*"
你可以加入他们,但我会像这样将一个连接到另一个。
dir *.jpg -Recurse | Where-Object Length -ge 100KB | Where-object Name -like "*lowRes.jpg*"
您可能希望将名称过滤放在首位,因为具有特定名称的文件比大于或小于特定大小的文件少。取决于您的文件的布局方式。
最后,将所有这些都输入到 Export-Csv cmdlet 和 bam 中,你就完成了!
【讨论】:
Where 声明,或者只是个人喜好? <fanboy>Also,我只是想说我非常喜欢你关于如何制作 GUI 和线程脚本博客文章的系列。 </fanboy>
你可以这样做:
Get-ChildItem "C:\temp" -Recurse -file -filter "*_lowRes.jpg" |
Where Length -ge 100KB | select fullname, Length |
export-csv "c:\temp\result.csv" -NoType
短版(不适合纯粹主义者):
gci "C:\temp" -Rec -file -filter "*_lowRes.jpg" | ? L -le 100KB | select fu*, le* | epcsv "c:\temp\result.csv" -Not
【讨论】: