วิธีคำนวณขนาดของโฟลเดอร์โดยใช้ PowerShell บน Windows
เพื่อตรวจสอบว่าไดเร็กทอรีใดใช้พื้นที่เก็บข้อมูลของคุณ คุณควรตรวจสอบขนาดตามลำดับเพื่อระบุไฟล์หรือโฟลเดอร์ที่ผูกขาดฮาร์ดไดรฟ์ของคุณ ข้อมูลนี้พิสูจน์ได้ว่ามีประโยชน์อย่างยิ่งเมื่อพยายามถ่ายโอนไฟล์เก็บถาวรจำนวนมากไปยังอุปกรณ์จัดเก็บข้อมูลภายนอก เช่น ไดรฟ์ USB หรือบริการคลาวด์ ในกรณีของระบบปฏิบัติการ Windows เราสามารถเข้าถึงคุณสมบัติของไฟล์ได้อย่างง่ายดายโดยใช้ File Explorer และเปิดกล่องโต้ตอบที่เกี่ยวข้อง
การใช้ PowerShell เป็นวิธีที่มีประสิทธิภาพมากกว่าในการคำนวณขนาดของโฟลเดอร์ขนาดใหญ่ภายในระบบปฏิบัติการ Windows เมื่อเปรียบเทียบกับการใช้แอปพลิเคชันตัวสำรวจไฟล์แบบเนทีฟ สิ่งนี้อาจเป็นประโยชน์อย่างยิ่งในสถานการณ์ที่ต้องการการจัดการไฟล์และไดเร็กทอรีจำนวนมากในอุปกรณ์คอมพิวเตอร์หลายเครื่องภายในบริบทขององค์กร
วิธีคำนวณขนาดโฟลเดอร์โดยใช้ PowerShell บน Windows
ในการกำหนดขนาดของไดเร็กทอรี จำเป็นต้องใช้คำสั่ง PowerShell Get-ChildItem และ Measure-Object จากนั้นใช้คุณสมบัติ Length และพารามิเตอร์ Sum
คำสั่ง"Get-ChildItem"ช่วยให้สามารถดึงข้อมูลจากไดเร็กทอรีที่กำหนดพร้อมกับไดเร็กทอรีรอง การใช้คำสั่ง “Measure-Object” ร่วมกับคุณสมบัติและพารามิเตอร์ที่เกี่ยวข้อง ทำให้สามารถคำนวณผลรวมสะสมของแอตทริบิวต์ “Length” สำหรับรายการที่ได้รับผ่านคำสั่ง “Get-ChildItem” ซึ่งเรียกอีกอย่างว่า “cgi”
ถ้าใครไม่คุ้นเคยกับ PowerShell คุณควรอ่านคำอธิบายของเราอย่างละเอียดซึ่งอธิบายถึงคำสั่ง PowerShell พื้นฐานเพื่อทำความเข้าใจพื้นฐานเกี่ยวกับความสามารถหลักของ PowerShell
ด้วยความสามารถของคุณในการใช้คำสั่ง PowerShell ฉันจะอธิบายวิธีการรับขนาดของไดเร็กทอรีที่กำหนดโดยใช้คำสั่งเหล่านี้
โปรดกดปุ่ม Windows บนแป้นพิมพ์ของคุณ ตามด้วยพิมพ์"powershell"ในแถบค้นหาหรือพรอมต์คำสั่งที่ปรากฏขึ้น เพื่อเปิดแอปพลิเคชัน PowerShell
โปรดปฏิบัติตามขั้นตอนเหล่านี้เพื่อเปิดพรอมต์คำสั่งด้วยสิทธิ์ของผู้ดูแลระบบ:1. คลิกขวาที่ไอคอน “Windows PowerShell” ในเมนู Start หรือทาสก์บาร์2. จากเมนูบริบทที่ปรากฏ ให้เลือก “เรียกใช้ในฐานะผู้ดูแลระบบ”3. หากพรอมต์การควบคุมบัญชีผู้ใช้ (UAC) ปรากฏขึ้น ให้คลิก “ใช่” เพื่อให้สิทธิ์ที่จำเป็น
⭐ ในหน้าต่าง PowerShell ให้พิมพ์คำสั่งต่อไปนี้:
Get-ChildItem FolderPath | Measure-Object -Property Length -sum
⭐ ในคำสั่งด้านบน ให้แทนที่ FolderPath ด้วยเส้นทางไดเร็กทอรีที่บันทึกโฟลเดอร์ของคุณ ตัวอย่างเช่น หากคุณต้องการคำนวณขนาดของโฟลเดอร์ดาวน์โหลดที่อยู่ในไดรฟ์ E:\ คำสั่งแบบเต็มจะมีลักษณะดังนี้:
Get-ChildItem E:\Download | Measure-Object -Property Length -sum
ผลลัพธ์ของคำสั่งจะแสดงจำนวนของรายการและขนาดตามลำดับ โดยแสดงเป็นไบต์ เพื่อที่จะเข้าใจขนาดของค่าเหล่านี้ จะต้องแปลงเป็นหน่วยที่คุ้นเคยมากขึ้น เช่น กิโลไบต์ เมกะไบต์ กิกะไบต์ ฯลฯ ซึ่งสามารถทำได้ผ่านการหารหลายชุดด้วยกำลัง 1024 กระบวนการนี้ช่วยให้เข้าใจได้ง่ายขึ้น และการเปรียบเทียบขนาดไฟล์ตามความจุต่างๆ
อีกทางหนึ่ง อาจใช้คุณสมบัติ .sum
เพื่อให้ได้ขนาดรวม จากนั้นหารด้วยหน่วยการวัด เช่น 1 ล้านหรือ 1 พันล้าน เพื่อแสดงผลเป็นเมกะไบต์หรือกิกะไบต์ตามลำดับ
หากต้องการรับข้อมูลเกี่ยวกับค่าของความจุในหน่วยกิกะไบต์ที่แสดงเป็นเมกะไบต์ (MBs) โปรดป้อนคำสั่งที่ระบุบนอุปกรณ์ของคุณ แล้วกดแป้น"Enter"
(gci E:\Download | measure Length-s).sum / 1Mb
ในทำนองเดียวกัน การแทนที่ “1Mb” ด้วย “1Gb” จะช่วยให้ดึงขนาดของโฟลเดอร์เป็นกิกะไบต์ได้
(gci E:\Download | measure Length-s).sum / 1Gb
เพื่อยืนยันขนาดของไฟล์บางหมวดหมู่ภายในโฟลเดอร์ เราอาจใช้สัญลักษณ์ดอกจัน (\*) ตามด้วยนามสกุลไฟล์ วิธีการนี้จะแสดงขนาดของประเภทไฟล์ที่กล่าวถึงเท่านั้น
หากต้องการกำหนดจำนวนพื้นที่จัดเก็บที่ใช้โดยอิมเมจภายในไดเร็กทอรีเฉพาะ คุณสามารถดำเนินการต่อไปนี้:
(gci E:\download *.jpg | measure Length-s).sum / 1Mb
การใช้อักขระตัวแทนทำให้สามารถระบุได้ว่ารูปแบบไฟล์ใดรูปแบบหนึ่งมีพื้นที่ว่างในดิสก์มากที่สุดภายในไดเร็กทอรีที่กำหนดหรือไม่ ต่อจากนั้น โดยการกรองเนื้อหาตามนามสกุลไฟล์ คุณจะสามารถลบหรือย้ายเนื้อหาเหล่านั้นได้ตามต้องการ
วิธีรับขนาดโฟลเดอร์ย่อยโดยใช้ PowerShell
ในการกำหนดขนาดที่ครอบคลุมของเนื้อหาภายในไดเร็กทอรีที่กำหนด รวมถึงโฟลเดอร์ย่อยที่ซ้อนกันทั้งหมด จำเป็นต้องรวมแอตทริบิวต์ “-Recurse” เข้ากับคำสั่งที่กล่าวถึงก่อนหน้านี้ นอกจากนี้ การใช้คุณลักษณะ"-force"ยังช่วยให้เราสามารถจับกุมข้อมูลที่เกี่ยวข้องกับไฟล์ที่ปกปิดและไฟล์ปฏิบัติการภายในไดเร็กทอรีเฉพาะนั้น
เพื่อให้ได้บัญชีที่ครอบคลุมของเนื้อหาทั้งหมดภายในโฟลเดอร์ C:\Users พร้อมด้วยไดเร็กทอรีย่อยที่เกี่ยวข้องทั้งหมด ซึ่งครอบคลุมทั้งองค์ประกอบที่มองเห็นได้และที่ซ่อนอยู่ เราอาจใช้การใช้ประโยชน์จากคำสั่ง PowerShell ซึ่งจะแสดงการกำหนดค่าที่คล้ายคลึงกัน ต่อไปนี้:
((gci-force c:\Users-Recurse-ErrorAction SilentlyContinue| measure Length-s).sum / 1Gb)
ข้อมูลที่ระบุระบุว่าประมาณ 54 กิกะไบต์เป็นความจุสะสมของไดเร็กทอรี"c:\users"โดยเฉพาะอย่างยิ่ง คำสั่งดังกล่าวรวมเอาแอตทริบิวต์ “-ErrorAction SilentlyContinue” ซึ่งทำหน้าที่ป้องกันข้อผิดพลาดที่อาจเกิดขึ้นไม่ให้แสดงระหว่างการดำเนินการ
วิธีรับขนาดโฟลเดอร์ย่อยในรูปแบบตารางโดยใช้ PowerShell
เพื่อให้ได้การแสดงโดยรวมของมิติข้อมูลของโฟลเดอร์ย่อยแต่ละรายการภายในโครงสร้างโฟลเดอร์ที่ครอบคลุม ผู้ใช้อาจเรียกใช้สคริปต์ PowerShell ที่แสดงภาพไดเร็กทอรีย่อยทุกไดเร็กทอรีและหน่วยวัดที่สอดคล้องกัน สคริปต์ดังกล่าวมักจะพิสูจน์ให้เห็นว่ามีประโยชน์เมื่อจัดการกับไดเร็กทอรีจำนวนมากที่มีไดเร็กทอรีย่อยจำนวนมาก ซึ่งจำเป็นต้องมีการจัดการบ่อยครั้ง
ในการเรียกใช้สคริปต์นี้โดยใช้ PowerShell Integrated Scripting Environment (ISE) โปรดทำตามขั้นตอนเหล่านี้:1. เปิด PowerShell ISE โดยพิมพ์ “powershell” ในเมนูเริ่มต้น แล้วเลือก “Windows PowerShell ISE”2. เมื่อเปิดเอดิเตอร์แล้ว ให้ไปที่ไดเร็กทอรีซึ่งเป็นที่ตั้งของไฟล์สคริปต์ของคุณโดยใช้คำสั่ง “cd” ตัวอย่างเช่น หากสคริปต์ของคุณบันทึกไว้บนเดสก์ท็อป ให้พิมพ์ “cd %userprofile%\desktop” แล้วกด enter3 เมื่อเคอร์เซอร์อยู่ที่ตำแหน่งเริ่มต้นของไฟล์สคริปต์ ให้เลือกข้อความทั้งหมดโดยกด “Ctrl + A” จากนั้นบันทึกการเปลี่ยนแปลงที่ทำในคลิปบอร์ดโดยใช้ปุ่ม “Ctrl + Shift + S” หรือคลิกที่ “ไฟล์” ที่มุมซ้ายบน เลือก “บันทึกเป็น…” เลือก
⭐ กดปุ่ม Win แล้วพิมพ์ PowerShell ISE คลิกที่ Windows PowerShell ISE จากผลการค้นหา
⭐ ถัดไป คัดลอกและวางคำสั่งต่อไปนี้ลงในคอนโซล PowerShell ISE อย่าลืมเปลี่ยนไดเร็กทอรีจาก c:\ เป็นไดเร็กทอรีที่คุณต้องการ
$targetfolder = 'C:\'
$dataColl = Get-ChildItem -Force $targetfolder -Directory -ErrorAction SilentlyContinue | ForEach-Object {
$len = Get-ChildItem -Recurse -Force $_.FullName -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum | Select-Object -ExpandProperty Sum
$foldername = $_.FullName
$foldersize = '{0:N2} GB' -f ($len/1Gb)
[PSCustomObject]@{
foldername = $foldername
foldersizeGb = $foldersize
}
}
$dataColl | Out-GridView -Title "Size of Subdirectories in $targetfolder"
คลิกที่ปุ่ม"เรียกใช้สคริปต์"หรืออีกวิธีหนึ่งคือกดปุ่ม"F5"เพื่อเริ่มต้นการดำเนินการของสคริปต์นี้ เมื่อกระบวนการเริ่มต้นขึ้น คุณจะพบกับอินเทอร์เฟซผู้ใช้ที่แสดงข้อมูลเกี่ยวกับขนาดของแต่ละไดเร็กทอรีย่อยภายในโครงสร้างไดเร็กทอรีที่คุณเลือก เนื้อหาและลักษณะที่ปรากฏของกล่องโต้ตอบนี้อาจแตกต่างกันไปขึ้นอยู่กับการกำหนดค่าระบบไฟล์และเวอร์ชันของระบบปฏิบัติการที่ใช้
เพื่อปรับแต่งผลการค้นหาเพิ่มเติม เราอาจใช้ตัวดำเนินการเปรียบเทียบ PowerShell เพื่อกรองข้อมูล เพื่อเป็นตัวอย่าง ให้พิจารณาคำสั่งต่อไปนี้ซึ่งดึงไฟล์ที่มีขนาดของโฟลเดอร์ที่สร้างขึ้นในช่วงเดือนมิถุนายนและกรกฎาคมในปีสองพันยี่สิบสาม:
(gci-force E:\Download –Recurse-ErrorAction SilentlyContinue | ? {$_.CreationTime-gt '01/23/23'-AND $_.CreationTime-lt '02/23/23'}| measure Length-s).sum / 1Gb
คำสั่งที่มีให้ใช้นามแฝงว่า “?” ตัวดำเนินการซึ่งแสดงถึง Where-Object cmdlet เพื่ออำนวยความสะดวกในการดำเนินการตามเงื่อนไขตามเกณฑ์ที่ระบุ โดยเฉพาะอย่างยิ่ง ตัวดำเนินการเปรียบเทียบ"-gt"(มากกว่า),"-AND"และ"-It"ใช้เพื่อประเมินว่าตรงตามเงื่อนไขหรือไม่ นอกจากนี้ ตัวแปร “CreationTime” ยังทำหน้าที่เป็นข้อกำหนดเบื้องต้นที่ต้องทำให้สำเร็จก่อนจึงจะสามารถแสดงเอาต์พุตใดๆ ได้ ดังนั้น คำสั่งจะกรองไฟล์ภายในไดเร็กทอรีย่อยที่กำหนด ซึ่งการประทับเวลาการสร้างอยู่ในช่วงวันที่ที่กำหนดไว้ล่วงหน้า และจะแสดงผลลัพธ์เมื่อตรงตามเกณฑ์นี้เท่านั้น หากพบข้อผิดพลาดเกิดขึ้น อาจจำเป็นต้องตรวจสอบว่ารูปแบบวันที่ที่ใช้ในคำสั่งสอดคล้องกับการตั้งค่าระบบ และลองดำเนินการอีกครั้งตามนั้น
รับขนาดโฟลเดอร์และโฟลเดอร์ย่อยโดยใช้ PowerShell
การใช้คุณสมบัติ File Explorer ภายในระบบปฏิบัติการ Windows ช่วยให้ผู้ใช้สามารถกำหนดขนาดของไดเร็กทอรีหรือไฟล์ที่กำหนด อย่างไรก็ตาม สำหรับผู้ที่มักโต้ตอบกับไดเร็กทอรีจำนวนมากหรือทำงานภายในบริษัทที่รักษาคะแนนของระบบคอมพิวเตอร์ การใช้ PowerShell เป็นวิธีที่มีประสิทธิภาพมากขึ้นในการทำงานให้สำเร็จ
การผสมผสานวิธีการที่ใช้ส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) สำหรับการวิเคราะห์ข้อมูลอาจเป็นที่ต้องการของผู้ใช้บางคน เพื่อจุดประสงค์นี้ เครื่องมือวิเคราะห์ดิสก์มีให้ใช้งานซึ่งนำเสนอการแสดงภาพขององค์กรไฟล์ระบบ และสร้างรายงานโดยละเอียดโดยเน้นไฟล์ที่ใหญ่ที่สุดที่ใช้พื้นที่จัดเก็บภายในระบบ