1
我有一個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
我想修改結果添加以下功能
- 以KB/Mb/GB自動顯示大小
- 排序與面積(上面最常用的文件夾的大小)結果
要添加自動轉換功能,我在一些論壇
# 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
發現以下,但我從過去的2-3天真的stucked由於我缺乏在這個腳本知情的了,如何與現有的腳本合併,並得到我想要的 結果... 任何幫助將非常感激......
該社區的祝福爲初學者和麻木,堅果和我一樣:) 這個工作100%完美。非常感謝你的時間人。 還有一件事。如果我想提供我選擇的文件夾(如我們在腳本中使用$ 1) /示例:script.ps1 c:\ temp(我選擇的文件夾,以便我不必在腳本中對其進行硬編碼) –
刪除'cd \ myfolder「'部分併爲第一個'Get-ChildItem'調用指定一個路徑。我已經更新了答案以作爲帶參數的腳本工作(最後編輯...) –
**得到了它**精美:)致敬! –