ฉันจะหาขนาดของโฟลเดอร์โดยใช้ Powershell ได้อย่างไร


23

ฉันต้องการดูว่าโฟลเดอร์ใหญ่แค่ไหน (เนื้อหาทั้งหมดรวมถึงโฟลเดอร์ย่อยและเนื้อหาในโฟลเดอร์) ฉันไม่สามารถหาคำสั่ง powershell ได้ แต่ฉันไม่ต้องการเปิด windows explorer ทุกครั้งที่ฉันต้องการทราบขนาด มีวิธีง่ายๆในการทำสิ่งนี้จากภายใน Powershell หรือไม่?

คำตอบ:


29

ค่อนข้างแน่ใจว่าฉันได้รับสิ่งนี้จากปลาย Powershell ของวัน; จำไม่ได้แน่นอน แต่ฉันใช้มานานแล้วและมันก็มีประโยชน์มาก

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

แก้ไข: เพื่อให้ง่ายต่อการใช้งาน (เพื่อให้คุณไม่ต้องจดจำและพิมพ์สิ่งนี้ออกมาทุกครั้ง) คุณสามารถเพิ่มลงในโปรไฟล์ของคุณเป็นฟังก์ชันได้เช่น:

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

แล้วใช้มันเหมือนคำสั่งใด ๆ :

Get-size C:\users\administrator

1
ฉันอยากรู้ว่าฉันจะเพิ่มสิ่งนี้ลงในโปรไฟล์ PowerShell ได้อย่างไร คุณหมายถึงdot sourcingหรือเปล่า (หมายเหตุด้าน: รหัสสามารถจัดรูปแบบได้โดยการเพิ่มช่องว่าง 4 ช่องที่จุดเริ่มต้น)
nixda

2
คุณสามารถ . แหล่งที่มาโปรไฟล์ของคุณหากคุณทำการเปลี่ยนแปลงและไม่ต้องการเริ่มเซสชัน PS ใหม่ แต่จะโหลดโดยอัตโนมัติทุกครั้งที่คุณเริ่ม Powershell ดังนั้นโดยทั่วไปคุณจะไม่ทำเช่นนั้น หากต้องการสร้างโปรไฟล์ของคุณเป็นครั้งแรกให้ทำดังนี้: ni $ profile -type f -fo จากนั้นคุณสามารถเปิดและแก้ไขโปรไฟล์ของคุณ หากต้องการค้นหาตำแหน่งที่อยู่ให้พิมพ์ $ profile ลงในเชลล์และพา ธ จะปรากฏขึ้น จากนั้นฟังก์ชั่นที่คุณเพิ่มเช่นฟังก์ชั่นด้านบนก็สามารถใช้งานได้เหมือนที่มีอยู่ในตัวขอบคุณสำหรับเคล็ดลับการจัดรูปแบบโค้ดด้วย
Darian Everett

1
+1 Whoa ไม่รู้เคล็ดลับนั้น ที่น่าสนใจ :)
nixda

1
สิ่งที่ไม่{0:N2}ทำอะไร?
soandos

1
การจัดรูปแบบ ศูนย์คือตัวยึดตำแหน่ง N2 หมายถึงตัวเลขที่มีทศนิยมสองตำแหน่ง
Darian Everett

9

อยู่ในเว็บไซต์ Microsoft Technet ที่นี่

การป้อนข้อมูล:

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

เอาท์พุท:

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

1
สิ่งนี้มักจะค่อนข้างไกลเนื่องจากคุณจำเป็นต้องตรวจสอบซ้ำว่าโฟลเดอร์นั้นมีโฟลเดอร์ย่อยหรือไม่ การวัดนั้นบิตคืออะไร?
Austin T French

ถูกต้องมันเป็นบิต - นอกจากนี้ยังลืมใส่สวิตช์ recurse ที่ฉันไม่ได้แก้ไข - โปรดทราบว่าส่วนใหญ่ฉันโพสต์เพื่อให้บทความด้านเทคนิคเกี่ยวกับการดำเนินการค้นหาเหล่านี้ผ่าน google (ขนาดโฟลเดอร์ powershell) เพื่อให้ OP คำสั่งใช้ไม่เพียงคำตอบ
50-3

ขอบคุณสำหรับการอัปเดตมันเหมาะกว่าตอนนี้ฉันคิดว่าสำหรับรูปแบบคำถาม & คำตอบ
Austin T French
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.