Làm cách nào để tìm kích thước của thư mục bằng Powershell?


23

Tôi muốn có thể xem một thư mục lớn như thế nào (tất cả nội dung, bao gồm các thư mục con và nội dung của chúng). Tôi không thể tìm thấy lệnh powershell để làm điều đó, nhưng tôi không muốn phải mở windows explorer mỗi khi tôi muốn biết kích thước. Có cách nào đơn giản để thực hiện điều này từ bên trong Powershell không?

Câu trả lời:


29

Khá chắc chắn rằng tôi đã nhận được điều này từ một mẹo Powershell trong ngày; Không thể nhớ chắc chắn, nhưng tôi đã sử dụng nó một thời gian dài và nó rất hữu ích.

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

Chỉnh sửa: Để làm cho nó dễ sử dụng hơn (vì vậy bạn không cần phải nhớ và nhập toàn bộ nội dung này mỗi lần), bạn có thể thêm nó vào hồ sơ của mình dưới dạng một chức năng, như vậy:

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

Và sau đó sử dụng nó như bất kỳ lệnh nào:

Get-size C:\users\administrator

1
Tôi tò mò, làm cách nào để thêm phần này vào hồ sơ PowerShell? Bạn có nghĩa là tìm nguồn cung ứng ? (lưu ý bên: mã có thể được định dạng bằng cách thêm 4 khoảng trống ở đầu)
nixda

2
Bạn có thể . nguồn hồ sơ của bạn nếu bạn đã thực hiện thay đổi và không muốn khởi động lại phiên PS của mình, nhưng nó sẽ tự động tải mỗi khi bạn khởi động Powershell, vì vậy bạn thường không làm điều đó. Để tạo hồ sơ của bạn lần đầu tiên, hãy làm như sau: ni $ profile -type f -fo Sau đó, bạn có thể mở và chỉnh sửa hồ sơ của mình. Để tìm vị trí của nó, chỉ cần nhập $ profile vào shell và đường dẫn sẽ được hiển thị. Sau đó, bất kỳ chức năng nào bạn thêm, chẳng hạn như chức năng ở trên, đều khả dụng như được tích hợp sẵn. Cảm ơn vì mẹo định dạng mã cũng vậy
Darian Everett

1
+1 Whoa không biết mánh khóe đó. Hấp dẫn :)
nixda

1
những gì {0:N2}làm gì?
soandos

1
Định dạng. Số 0 là người giữ chỗ, N2 có nghĩa là số có hai chữ số thập phân.
Dary Everett

9

Nó trên trang web Microsoft Technet tại đây

đầu vào:

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

đầu ra:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length

1
Điều này thường có thể là khá xa, vì bạn cần kiểm tra đệ quy nếu thư mục có thư mục phụ. Ngoài ra, số đo đó là gì?
Austin T Pháp

Sửa các bit của nó - cũng quên bao gồm công tắc lặp lại mà tôi chưa chỉnh sửa - cũng lưu ý rằng tôi chủ yếu đăng bài để cung cấp bài viết về việc thực hiện các tìm kiếm này thông qua google (kích thước thư mục powershell) để OP có thể hiểu đầy đủ về các lệnh được sử dụng không chỉ là câu trả lời
50-3

Cảm ơn các bản cập nhật, nó phù hợp hơn bây giờ tôi nghĩ cho định dạng Q & A.
Austin T Pháp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.