ค้นหาเว็บไซต์

PowerShell: วิธีรับขนาดโฟลเดอร์เป็น GB


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

$path = "c:\users\bobbi\onedrive\documents\collecting_wisdom"
$folders = Get-ChildItem -Path $path -Directory -Recurse

$sizes = foreach ($folder in $folders) {
    $size = (Get-ChildItem -Path $folder.FullName -File -Recurse |
             Measure-Object -Property Length -Sum).Sum
    
    [PSCustomObject]@{
    Name = $folder.Name
    Size_GB = [Math]::Round($size / 1GB, 5)
    }
}

$sizes | Format-table

ตัวอย่างนี้จะแสดงชื่อและขนาด (เป็น GB) ของแต่ละโฟลเดอร์ในไดเร็กทอรีที่เราระบุไว้ในตัวแปร $path

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

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: วิธีรับขนาดโฟลเดอร์เป็น GB โดยใช้ PowerShell

สมมติว่าไดเรกทอรีปัจจุบันของเรามีเส้นทางต่อไปนี้:

C:\Users\bobbi\OneDrive\Documents\collecting_wisdom

เราสามารถพิมพ์ Dir เพื่อแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบันนี้:

สมมติว่าเราต้องการรับขนาดของแต่ละโฟลเดอร์ในไดเร็กทอรีนี้เป็น GB

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:

$path = "c:\users\bobbi\onedrive\documents\collecting_wisdom"
$folders = Get-ChildItem -Path $path -Directory -Recurse

$sizes = foreach ($folder in $folders) {
    $size = (Get-ChildItem -Path $folder.FullName -File -Recurse |
             Measure-Object -Property Length -Sum).Sum
    
    [PSCustomObject]@{
    Name = $folder.Name
    Size_GB = [Math]::Round($size / 1GB, 5)
    }
}

$sizes | Format-table

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:

เอาต์พุตจะแสดงชื่อของแต่ละโฟลเดอร์ในไดเร็กทอรีพร้อมกับขนาดโฟลเดอร์ในหน่วย GB:

  • เศรษฐมิติ: 0.00235 GB
  • สถิติด้านสิ่งแวดล้อม: 0.00048 GB
  • การวิเคราะห์อนุกรมเวลา: 0.00033 GB

หมายเหตุ: หากคุณต้องการแสดงขนาดโฟลเดอร์เป็น MB แทน ให้หารด้วย 1MB แทนภายในวิธี Round()

บทความที่เกี่ยวข้อง