1

Грубо говоря, я хочу сделать эквивалент bash :

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 ответ1

4
  • ls , dir , gci являются псевдонимами для Get-ChildItem и могут использоваться вместо них.
  • Используйте Length не size .
  • В where или ? (псевдонимы для Where-Object) без {} use Length, внутри фигурных скобок используйте ?{$_.Length -gt 10kb}
  • суффиксы kb , mb , gb , tb и pb следующие непосредственно за числом (int/float), автоматически расширяются до кратности 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .