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

วิธีรับขนาดโฟลเดอร์โดยใช้ PowerShell ใน Windows 11/10


โดยทั่วไปแล้ว บนพีซีที่ใช้ Windows คุณสามารถตรวจสอบรายการหรือขนาดโฟลเดอร์ได้ด้วยการคลิกขวาที่รายการหรือโฟลเดอร์ แล้วเลือก คุณสมบัติ จากเมนูบริบท ในโพสต์นี้ เราจะแสดงวิธีตรวจสอบหรือรับขนาดโฟลเดอร์โดยใช้ PowerShell ใน Windows 11/10

กรณีการใช้งานที่คุณอาจต้องการใช้ PowerShell แทนวิธีทั่วไปในการรับโฟลเดอร์คือถ้าขนาดของรายการหรือโฟลเดอร์มีขนาดใหญ่กว่ามาก ตัวอย่างเช่น มากกว่า 100 GB ในกรณีนี้ การใช้วิธีทั่วไปอาจใช้เวลาสักครู่ก่อนที่หน้าต่าง Properties ของโฟลเดอร์จะใส่ข้อมูลขนาดของรายการในที่สุด — ยิ่งกว่านั้น สิ่งที่แสดงอาจไม่ใช่ขนาดจริงของโฟลเดอร์

วิธีรับขนาดโฟลเดอร์โดยใช้ PowerShell ใน Windows 11/10

ด้วยเหตุผลใดก็ตาม คุณอาจต้องการขนาดของโฟลเดอร์ ตัวอย่างเช่น เพื่อประเมินเวลาหรือระยะเวลาที่ใช้ในการย้ายโฟลเดอร์ (ไปยังตำแหน่งอื่นบนไดรฟ์ในเครื่อง ไดรฟ์ภายนอก หรือที่เก็บข้อมูลบนคลาวด์) หรือหากจำเป็น โฟลเดอร์ขนาดใหญ่ที่เพียงแค่ลบออกเพื่อเพิ่มพื้นที่ว่างในฮาร์ดไดรฟ์ของคุณ — คุณสามารถรับขนาดของโฟลเดอร์/ไดเร็กทอรีได้ทันทีโดยใช้ PowerShell เราจะหารือเกี่ยวกับหัวข้อนี้ภายใต้หัวข้อย่อยต่อไปนี้

  1. คำสั่ง PowerShell เพื่อรับขนาดโฟลเดอร์

  2. รับขนาดโฟลเดอร์เป็นไบต์ MB และ GB

  3. รับขนาดโฟลเดอร์เป็นทศนิยม

  4. รับขนาดของรายการประเภทไฟล์เฉพาะ

  5. รับขนาดโฟลเดอร์และโฟลเดอร์ย่อย

  6. รับขนาดโฟลเดอร์และโฟลเดอร์ย่อยด้วยตัวกรองเวลา

  7. รับขนาดโฟลเดอร์ย่อยทั้งหมดโดยใช้สคริปต์ PowerShell

1. คำสั่ง PowerShell เพื่อรับขนาดโฟลเดอร์

ต่อไปนี้คือ PowerShell cmdlets หลัก 2 รายการที่สามารถใช้กับสวิตช์และพารามิเตอร์เพื่อกรองผลลัพธ์ตามความต้องการของคุณเพื่อให้ได้ขนาดของโฟลเดอร์

  • Get-ChildItem (Alias: GCI) - คำสั่งนี้จะดึงข้อมูลจากไดเร็กทอรีหนึ่งหรือไดเร็กทอรีที่ระบุ รวมถึงไดเร็กทอรีย่อย ไดเร็กทอรีว่างจะไม่แสดงหรือแสดง

  • Measure-Object (Alias: measure) - คำสั่งนี้คำนวณคุณสมบัติต่างๆ ของไดเร็กทอรีที่ระบุ รวมถึงขนาดของไดเร็กทอรี

นามแฝงเป็นชื่อทางเลือกสำหรับคำสั่ง ดังนั้นคุณไม่จำเป็นต้องพิมพ์คำสั่งทั้งหมดทุกครั้ง

2. รับขนาดโฟลเดอร์เป็น Bytes, MBs และ GBs

cmdlet จะแสดงขนาดของโฟลเดอร์ที่ระบุและรายการภายในเท่านั้น และผลลัพธ์จะไม่รวมขนาดของรายการภายในไดเรกทอรีย่อย ตัวอย่างเช่น เราจะเรียกใช้คำสั่งเพื่อให้ได้ขนาดของโฟลเดอร์ C:\Users\Chidum.Osobalu\Documents\TWC_related ที่เรามีบนพีซีของเรา แทนที่ตัวยึดตำแหน่ง PathToFolder ด้วยเส้นทางที่สมบูรณ์ไปยังโฟลเดอร์/ไดเร็กทอรีที่คุณต้องการรับขนาด

ขนาดโฟลเดอร์เป็นไบต์:

Get-ChildItem PathToFolder | Measure-Object -Property Length -sum

ขนาดโฟลเดอร์เป็น MB:

(gci PathToFolder | measure Length -s).sum / 1Mb

ขนาดโฟลเดอร์เป็น GB:

(gci PathToFolder | measure Length -s).sum / 1Gb

ช่อง “ผลรวม” จะแสดงขนาดของโฟลเดอร์เป็นไบต์, MB และ GB แล้วแต่กรณี

3. รับขนาดโฟลเดอร์เป็นทศนิยม

ผลลัพธ์สำหรับขนาดโฟลเดอร์ในหน่วย MB และ GB นั้นคลุมเครือที่จะเข้าใจได้อย่างรวดเร็ว เนื่องจากขนาดอยู่ในตำแหน่งทศนิยมหลายตำแหน่ง ดังนั้น คุณสามารถเรียกใช้คำสั่งด้านล่างเพื่อปัดเศษผลลัพธ์เป็นทศนิยม แทนที่ “X” ด้วยจำนวนตำแหน่งทศนิยมที่คุณต้องการปัดเศษผลลัพธ์ออก และระบุ GB หรือ MB ตามต้องการ

"{0:NX} GB" -f ((gci PathToFolder | measure Length -s).sum / 1Gb)

4. รับขนาดของรายการประเภทไฟล์เฉพาะ

หากคุณต้องการรับขนาดของรายการทั้งหมดภายในโฟลเดอร์ที่มีประเภทไฟล์/นามสกุลเดียวกัน ให้รันคำสั่งด้านล่าง แทนที่ตัวยึดตำแหน่ง FileType/Extension ตามลำดับ

(gci PathToFolder *.FileType/Extension | measure Length -s).sum / 1Gb

5. รับขนาดโฟลเดอร์และโฟลเดอร์ย่อย

ในการรับขนาดโฟลเดอร์และโฟลเดอร์ย่อย (รวมถึงรายการภายใน) คุณต้องใช้พารามิเตอร์ -Recurse ที่ใช้ในการคาดเดากับพารามิเตอร์ -ErrorAction SilentlyContinue เพื่อข้ามการเข้าถึงไดเร็กทอรี ข้อผิดพลาด เช่น การอนุญาตถูกปฏิเสธ เป็นต้น

หากต้องการดูขนาดของพาเรนต์และไดเร็กทอรีย่อย คุณสามารถเรียกใช้คำสั่งใดคำสั่งหนึ่งด้านล่าง

(gci PathToFolder -Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb
"{0:NX} GB" -f ((gci -force PathToFolder -Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)

cmdlet นี้จะรวมถึงขนาดของรายการที่ซ่อนอยู่

6. รับขนาดโฟลเดอร์และโฟลเดอร์ย่อยด้วยตัวกรองเวลา

คุณสามารถดูขนาดของโฟลเดอร์พาเรนต์และโฟลเดอร์ย่อย และใช้ตัวกรองเพื่อค้นหาขนาดของรายการที่สร้างขึ้นในวันที่ระบุ เดือนที่ระบุ หรือปีที่ระบุ คุณสามารถกำหนดได้โดยการระบุวันที่เริ่มต้นและวันที่สิ้นสุด ซึ่งถูกกำหนดตามลำดับโดยพารามิเตอร์ -gt (มากกว่า) และ -lt (น้อยกว่า) รูปแบบของวันที่คือ MM/DD/YY

หากต้องการดูขนาดของโฟลเดอร์ที่มีโฟลเดอร์ย่อยที่สร้างขึ้นในช่วงเวลาที่กำหนด ให้เรียกใช้คำสั่งด้านล่าง แทนที่ตัวยึดตำแหน่ง MM/DD/YY ตามลำดับ

(gci -force PathToFolder -Recurse -ErrorAction SilentlyContinue | ? {$_.CreationTime -gt ‘MM/DD/YY’ -AND $_.CreationTime -lt ‘MM/DD/YY’}| measure Length -s).sum / 1Gb

คุณยังสามารถใช้ตัวกรองเหล่านี้โดยใช้คำสั่งที่ให้ไว้ก่อนหน้านี้เพื่อรับขนาดโฟลเดอร์ของโฟลเดอร์หลักเท่านั้น

7. รับขนาดโฟลเดอร์ย่อยทั้งหมดโดยใช้สคริปต์ PowerShell

ตอนนี้ เพื่อทำให้สิ่งต่าง ๆ ซับซ้อนขึ้น สมมติว่าคุณต้องได้รับขนาดของแต่ละไดเร็กทอรีย่อยภายในโฟลเดอร์ สามารถทำได้โดยใช้ PowerShell แน่นอน หากต้องการให้ขนาดโฟลเดอร์ไดเรกทอรีย่อยทั้งหมดรวมถึงขนาดของรายการภายในไดเรกทอรีย่อยและแสดงในรูปแบบตารางเรียบร้อย คุณสามารถสร้างและเรียกใช้สคริปต์ PowerShell โดยใช้โค้ดด้านล่าง

$targetfolder='DriveLetter:\'
$dataColl = @()
gci -force $targetfolder -ErrorAction SilentlyContinue | ? { $_ -is [io.directoryinfo] } | % {
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % { $len += $_.length }
$foldername = $_.fullname
$foldersize= '{0:N2}' -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersize
$dataColl += $dataObject
}
$dataColl | Out-GridView -Title “Size of all subdirectories in DriveLetter drive”

แทนที่ตัวยึดตำแหน่ง DriveLetter ในโค้ดด้านบนตามนั้น และตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการเรียกใช้สคริปต์ PowerShell

แค่นั้นแหละ!

มีวิธีดูขนาดของโฟลเดอร์ใน Windows หรือไม่?

วิธีทั่วไปในการตรวจสอบขนาดโฟลเดอร์คือเปิด File Explorer แล้วคลิกขวาที่ไฟล์ โฟลเดอร์ หรือไดรฟ์ที่คุณต้องการดูขนาด จากเมนูที่ปรากฏ ให้เลือก คุณสมบัติ และคุณจะเห็นขนาดไฟล์/ไดรฟ์ทั้งหมด วิธีที่ไม่ธรรมดาในการทำงานเดียวกันคือการใช้ PowerShell ตามที่เราได้แสดงให้เห็นในโพสต์นี้ด้านบน

คำสั่ง DOS เพื่อแสดงรายการโฟลเดอร์และขนาดคืออะไร?

คำสั่ง dir แสดงข้อมูลเกี่ยวกับไฟล์และไดเร็กทอรี และพื้นที่ว่างในดิสก์ที่มีอยู่ ตามค่าดีฟอลต์ คำสั่งจะแสดงชื่อ ขนาด และเวลาแก้ไขล่าสุดของทุกไฟล์ในไดเร็กทอรีปัจจุบัน

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