Powershell Get-Child-Item:如何按大小过滤?

Powershell Get-Child-Item:如何按大小过滤?

粗略地说,我想做的事情相当于狂欢的:

find . -name "*portal*" -type f -size +100k

我试过了:

Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {Size -gt 10 }

Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {Length -gt 10 }

Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {$_.size -gt 100 }

由于我不确定使用了哪些单位,所以数字故意设得很低。

但什么也没有返回。

答案1

  • lsdirgci是 和 的别名Get-ChildItem,可以代替使用。
  • Length不使用size
  • where?(的别名Where-Object)中不{}使用长度,在花括号内使用?{$_.Length -gt 10kb}
  • 后缀kbmbgb和直接跟在数字(整数/浮点数)tb后面pb会自动扩展为 1024 的倍数(大小写无关紧要)

PoSh 02:25:10 C:\> 1kb
1024
PoSh 02:25:18 C:\> 1mb
1048576
PoSh 02:25:29 C:\> 1gb
1073741824
PoSh 02:25:34 C:\> 1tb
1099511627776
PoSh 02:25:40 C:\> 1pb
1125899906842624

这些是有效的
Get-ChildItem -Filter "*portal*" -Recurse -File | where Length -gt 10kb

Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {$_.Length -gt 10mb }

Get-ChildItem -Filter "*portal*" -Recurse -File | ? Length -gt 1gb

相关内容