Bagaimana saya bisa menemukan ukuran folder menggunakan Powershell?

23

Saya ingin dapat melihat seberapa besar folder itu (semua konten, termasuk sub-folder dan isinya). Saya tidak dapat menemukan perintah PowerShell untuk melakukan itu, tetapi saya tidak ingin harus membuka windows explorer setiap kali saya ingin tahu ukurannya. Apakah ada cara sederhana untuk mencapai ini dari dalam Powershell?

Yakub Cerdas
sumber

Jawaban:

29

Cukup yakin saya mendapatkan ini dari tip Powershell hari ini; tidak ingat pasti, tapi saya sudah lama menggunakannya dan ini sangat berguna.

"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"

Sunting: Untuk membuatnya lebih mudah digunakan (sehingga Anda tidak harus mengingat dan mengetik semua ini setiap kali) Anda bisa menambahkannya ke profil Anda sebagai fungsi, seperti:

function Get-Size
{
 param([string]$pth)
 "{0:n2}" -f ((gci -path $pth -recurse | measure-object -property length -sum).sum /1mb) + " mb"
}

Dan kemudian gunakan seperti perintah apa pun:

Get-size C:\users\administrator
Darian Everett
sumber
1
Saya ingin tahu, bagaimana cara menambahkan ini ke profil PowerShell? Maksud Anda dot sourcing ? (catatan: kode dapat diformat dengan menambahkan 4 spasi kosong di awal)
nixda
2
Kamu bisa . sumber profil Anda jika Anda telah membuat perubahan dan tidak ingin memulai kembali sesi PS Anda, tetapi itu memuat secara otomatis setiap kali Anda memulai Powershell, sehingga Anda umumnya tidak akan melakukannya. Untuk membuat profil Anda untuk pertama kalinya, lakukan hal berikut: ni $ profile -type f -fo Kemudian Anda dapat membuka dan mengedit profil Anda. Untuk menemukan di mana ia berada, cukup ketikkan $ profile ke dalam shell dan path akan ditampilkan. Lalu fungsi apa pun yang Anda tambahkan, seperti yang di atas, tersedia seperti bawaan. Terima kasih atas tip pemformatan kode juga
Darian Everett
1
+1 Whoa tidak tahu trik itu. Menarik :)
nixda
1
apa yang {0:N2}harus dilakukan
soandos
1
Memformat. Nol adalah place-holder, N2 berarti angka dengan dua tempat desimal.
Darian Everett
9

Ada di situs Microsoft Technet di sini

memasukkan:

Get-ChildItem C:\Scripts -recurse | Measure-Object -property length -sum

keluaran:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length
50-3
sumber
1
Ini seringkali bisa sangat jauh, karena Anda perlu memeriksa secara rekursif apakah folder tersebut memiliki sub folder. Juga, apa pengukuran itu, bit?
Austin T French
Mengoreksi bitnya - juga lupa menyertakan pengulangan yang tidak saya sunting - juga mencatat saya terutama memposting untuk menyediakan artikel teknis tentang melakukan pencarian yang ditemukan melalui google (ukuran folder powershell) sehingga OP bisa mendapatkan pemahaman penuh tentang perintah yang digunakan bukan hanya jawabannya
50-3
Terima kasih atas pembaruannya, sekarang lebih cocok untuk format Q&A.
Austin T French