none
Не правильно срабатывает IF RRS feed

  • Вопрос

  • Добрый день, скрипт, должен выбрать размеры папок более 10 Гб, но почему-то он не правильно срабатывает IF

    $Files_Array = @()
    $MainFolder = "\\?\E:\Distr\Microsoft\";
    
    $SubFolders = Get-ChildItem  -LiteralPath $MainFolder  | where {$_.PSIsContainer -eq $true} | Sort-Object;
    $n1=$SubFolders.Length
    $n2=1
    
    foreach ($folder in $subfolders) {
      $SubFolderSize = Get-ChildItem $folder.FullName -Recurse | measure -Property length -Sum; 
      $size = "{0:N0}" -f ($SubFolderSize.Sum/1GB)
      $size
      if ($size -gt 10)
    	{ ' больше'}
       $n2=$n2+1
    }

    Получаю значения, где 5 и 3 точно меньше 10

    5
     больше
    3
     больше
    0
    0
    0
    0
    0
    13
     больше
    0
    0
    21
     больше
    0
    19
     больше
    0
    0
    0
    0
    4
     больше
    0

    А если уменьшить необходимый объем
    if ($size -gt 8)

    то вообще не находит значения

    5
    3
    0
    0
    0
    0
    0
    13
    0
    0
    21
    0
    19
    0
    0
    0
    0
    4
    0

Ответы

  • Как оказалось у меня все правильно было, это сокращение числа Гб видимо криво идет, поэтому сделал проще

    if ($SubFolderSize.Sum -gt 10737418240)

    размер папки в байтах, сравнил с 10 Гб записанное в байтах.

    • Помечено в качестве ответа RK3DNP 2 мая 2022 г. 6:58