Как получить размер файла в КБ с помощью сценариев PowerShell?

Я пробовал $ sizes = (($ fileXP) .length/1KB) , но это не дает правильного ответа. Насколько я понимаю, это просто деление числа символов в файлах с КБ и дать неправильный ответ.

Должна быть какая-то функция или атрибут, чтобы напрямую определять размер и отображать, как мы хотим, в КБ, МБ или ГБ по мере необходимости.


6

Чтобы получить размеры файлов в КБ :

  Get-ChildItem |  % {[int] ($ _. length/1kb)}  

Или округлить до ближайшего КБ:

   Get-ChildItem |  % {[math] :: потолок ($ _. length/1kb)}  

Чтобы получить числовые символы:

   Get-ChildItem |  % {(Get-Content $ _. FullName) .length}  

Сравните вывод, и вы увидите, что длина Get-Childitem находится в КБ.

поделиться | |
ответил 27 июня ’16 в 15:58
  • Но, Дэйв, у меня есть файл, хранящийся в $ file, и теперь, если мне нужно рассчитать размер напрямую, а затем распечатать его. Так что это не может быть решением. Можете ли вы посоветовать решение для этого – Сваткат 28 июня 2016 г., 09:56
  • Можете ли вы показать код, который присваивается $ file ? Я не могу помочь, если не знаю, что в нем содержится. – Дэйв Секстон, 28 июня 2016, 13:34
  • $ fileXP = “XXSDSKILLSXP_data.xml” $ Directory = “C: Interfaces ” if (Test-Path $ Directory $ fileXP) $ sizes = ($ fileXP. length/1KB) Здесь у меня есть сохраненный файл в пути, который у меня есть, определяет путь и файл в переменных. я использую, как указано выше, чтобы найти размер – Svatkat 29 июня ’16 в 13:02
  • Итак, $ fileXP действительно содержит файл, просто строку, которая является именем файла. Длина вашей переменной будет просто количеством символов в строке. Чтобы получить файловый объект, вам нужно передать строку тому, что возвращает файловый объект, например: (Get-ChildItem $ fileXP) .length . – Дэйв Секстон, 29 июня 2016, 14:52
  • Да, я использовал это (Get-ChildItem $ fileXP) .length Но я не думаю, что могу сохранить вывод вышеуказанного в другой строковой переменной, а затем использовать эту переменную для отправки по почте в HTML. – Сваткат, 30 июн., 16:15
| показать 2 дополнительных комментария

Чтобы получить размеры файлов в КБ:

  Get-ChildItem |  % {[int] ($ _. length/1kb)}  

Или округлить до ближайшего КБ:

   Get-ChildItem |  % {[math] :: потолок ($ _. length/1kb)}  

Чтобы получить числовые символы:

   Get-ChildItem |  % {(Get-Content $ _. FullName) .length}  

Сравните вывод, и вы увидите, что длина Get-Childitem находится в КБ.


-1
  CLS  $ filenames = Get-Content "C:  temp  files  files-to-watch-size.txt" ** # Чтение имен файлов для проверки существования и размера файла, имени файлов с полным путем в  каждая строка, например  C:  test.txt ** foreach ($ filename в $ filenames) {if (Test-Path $ filename) {(Get-Item $ filename) .length -gt 0kb ** # Возвращает TRUE, если размер больше нуля КБ  ** $ size = (Get-Item $ filename) .length/1024 ** # Получение размера файла в КБ ** Write-Host "$ filename is $ size KB"} ** # отображение имени файла и его  размер в КБ **}  

share | |
отредактировано 24 июля ’19 в 15:43
ответил 23 июля ’19 в 21:52
  • Вопрос в том, как получить размер файла в килобайтах. По какой-то причине это итерация списка файлов, для каждого из которых выводится логическое значение, указывающее, есть ли у него данные или нет, и записывается на хост размер в байтах. Где размер в килобайтах? В любом случае, ответ Дэйва Секстона от трехлетней давности уже решает эту проблему. – Лэнс У. Мэтьюз, 23 июля ’19 в 23:19
  • 1
    Просто разделите значение байта на 1024, чтобы получить КБ, например “$ size = (Get-Item $ filename) .length/1024” вы можете преобразовать значение байта в КБ, МБ, ГБ или что угодно, просто разделив на соответствующее число! – MA Charlotte 24 июля ’19, в 15:47
  • 1
    Я обнаружил, что это немного быстрее, чем get-item, хотя разница составляет всего несколько миллисекунд. ([System.IO.FileInfo] $ path) .length/1kb – superluminal 18 нояб., 22:57
комментировать |

  CLS $ filenames = Get-Content "C:  temp  files  files-to-watch-size.  txt "** # Чтение имен файлов для проверки существования и размера файла, имя файлов с полным путем в каждой строке, например  C:  test. txt ** foreach ($ filename в $ filenames) {if (Test-Path $ filename) {(Get-Item $ filename) .length -gt 0kb ** # Возвращает TRUE, если размер больше нуля КБ ** $ size =  (Get-Item $ filename) .length/1024 ** # Получение размера файла в КБ ** Write-Host "$ filename is $ size KB"} ** # отображение имени файла и его размера в КБ **  }  

Оцените статью
futurei.ru
Добавить комментарий