У меня есть сценарий PowerShell, который получит имя папки, LastWriteTime, размерPowershell размер папки сортировки с преобразованием авто размер
cd \myfolder
get-childitem | where {$_.PSIsContainer} | foreach {
$size = (Get-ChildItem $_ -Recurse -Force | where {!$_.PSIsContainer} | Measure-Object -Sum Length).Sum
$obj = new-object psobject
add-member -inp $obj noteproperty path $_.Name
add-member -inp $obj noteproperty time $_.LastWriteTime
add-member -inp $obj noteproperty size $size
$obj
}
, в результате чего путь/имя, LastWriteTime, размер
path time size
---- ---- ----
Audit_data_network_8-FEB-2017 2/8/2017 10:59:33 AM 1071084
dec-2015 1/25/2016 10:05:07 AM 29742775
games 2/15/2016 11:33:02 AM 52134862
kolachi 12/2/2015 3:37:27 PM 12487862
lighroom_ 5/29/2015 2:13:10 PM 2788765
Mini_Remote_Control7.5.9.0_Portable 6/13/2014 3:58:08 PM 52406834
ps 2/20/2017 4:23:10 PM 126707
totalcmd 1/25/2017 4:20:48 PM 11113908
Я хочу для изменения результата для добавления следующей функции:
- Показать размер в КБ/МБ/ГБ автоматически
- Сортировать результат с Размер (наиболее часто используемых папок Размер по выше)
Чтобы добавить функцию преобразования авто, я обнаружил следующее на каком-то форуме
# If ($size -lt 1KB) { $sizeOutput = "$("{0:N2}" -f $size) B" }
#ElseIf ($size -lt 1MB) { $sizeOutput = "$("{0:N2}" -f ($size/1KB)) KB" }
#ElseIf ($size -lt 1GB) { $sizeOutput = "$("{0:N2}" -f ($size/1MB)) MB" }
#ElseIf ($size -lt 1TB) { $sizeOutput = "$("{0:N2}" -f ($size/1GB)) GB" }
#ElseIf ($size -lt 1PB) { $sizeOutput = "$("{0:N2}" -f ($size/1TB)) TB" }
#ElseIf ($size -ge 1PB) { $sizeOutput = "$("{0:N2}" -f ($size/1PB)) PB" }
#Write-Output $sizeOutput
, но я действительно stucked из последних 2-3 дней из-за мое отсутствие знаний в этом вопросе сценариев, HOWTO, чтобы объединить его с существующим сценарием и получить свои желаемые результаты ... Любой помощи будет очень ценна ...
Это сообщество благословляет для начинающих и онемевшие-гайки, как я :) Это работало 100% совершенен. Большое спасибо за ваше время. Просто еще одна вещь. Что делать, если я хочу предоставить Папку по моему выбору (например, мы используем $ 1 в скрипте) /Пример: script.ps1 c: \ temp (папка по моему выбору, так что мне не нужно жестко указывать ее в скрипте) –
Удалите 'cd \ myfolder" и указать путь для первого вызова Get-ChildItem. Я обновил ответ для работы как скрипт с параметром (последнее редактирование ...) –
** получил ** ** Это сработало красиво :) Салют ко всем! –