Powershell Get-Child-Item: como filtrar por tamanho?

1

Grosso modo, quero fazer o equivalente a bash :

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

Eu tentei:

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 }

Os números são baixos de propósito, pois não tenho certeza de quais unidades estão sendo usadas.

Mas nada é retornado.

    
por JL Peyret 05.05.2018 / 01:58

1 resposta

4
  • ls , dir , gci são aliases para Get-ChildItem e podem ser usados em seu lugar.
  • use Length não size .
  • Em where ou ? (aliases para Where-Object ) sem {} use Comprimento, entre chaves entre ?{$_.Length -gt 10kb}
  • sufixos kb , mb , gb , tb e pb diretamente após um número (int / float) são automaticamente expandidos como múltiplos de 1024 (o case não importa)
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

Estes são válidos em 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

    
por 05.05.2018 / 02:35