خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه محاسبه اندازه یک پوشه با استفاده از PowerShell در ویندوز

کدام پوشه ها درایو دیسک شما را درگیر می کنند؟ با این راهنمای ویندوز آشنا شوید.

اگر می‌خواهید بررسی کنید کدام پوشه‌ها فضای ذخیره‌سازی شما را اشغال می‌کنند، می‌توانید اندازه پوشه را بررسی کنید تا بفهمید چه چیزی درایو شما را اشغال کرده است. اگر نیاز به انتقال یک پوشه بزرگ به درایو USB یا فضای ذخیره‌سازی ابری دارید، بررسی اندازه پوشه نیز مفید است. یک راه آسان برای انجام این کار در ویندوز استفاده از File Explorer و باز کردن گفتگوی Properties پوشه است.

با این حال، File Explorer برای تعیین اندازه یک پوشه بزرگ کند است. و اگر می خواهید فایل ها و پوشه ها را در چندین رایانه در یک سازمان مدیریت کنید، ایده آل نیست. برای رفع این مشکل، می توانید از PowerShell برای محاسبه سریع اندازه پوشه ها در ویندوز استفاده کنید.

نحوه محاسبه اندازه یک پوشه با استفاده از PowerShell در ویندوز

powershell cmdlet برای مشاهده بایت های اندازه پوشه

برای محاسبه اندازه یک پوشه، باید از دو cmdlet PowerShell، Get-ChildItem و Measure-Object و به دنبال آن ویژگی Length و پارامتر Sum استفاده کنید.

cmdlet Get-ChildItem به شما امکان می دهد اطلاعات را از یک دایرکتوری مشخص و زیر شاخه های آن بازیابی کنید. cmdlet Measure-Object و ویژگی‌ها و پارامترهای مرتبط، مجموع ویژگی length را برای آیتم‌های برگردانده شده توسط cmdlet Get-ChildItem (مستعار ‘cgi’) محاسبه می‌کنند.

اگر تازه وارد PowerShell هستید، ممکن است بخواهید توضیح ما را در مورد cmdlet های ضروری PowerShell بخوانید تا اصول اولیه PowerShell را بدانید.

اکنون که با دستورات PowerShell آشنا شدید، در اینجا نحوه استفاده از آنها برای دریافت هر اندازه پوشه آورده شده است.

  1. کلید Win را فشار دهید و powershell را تایپ کنید.
  2. سپس روی Windows PowerShell کلیک راست کرده و Run as administrator را انتخاب کنید. اگر توسط User Account Control از شما خواسته شد روی Yes کلیک کنید.
  3. در پنجره PowerShell، دستور زیر را تایپ کنید:  Get-ChildItem FolderPath | Measure-Object -Property Length -sum
  4. در دستور بالا، مسیر دایرکتوری که پوشه شما در آن ذخیره شده است، جایگزین FolderPath کنید. به عنوان مثال، اگر می خواهید اندازه پوشه Download واقع در درایو E:\ را محاسبه کنید، دستور کامل به این صورت خواهد بود: Get-ChildItem E:\Download | Measure-Object -Property Length -sum
  5. بازگشت تعداد آیتم ها در پوشه و اندازه آن را بر حسب بایت نشان می دهد. برای بدست آوردن اندازه در کیلوبایت (کیلوبایت) باید مجموع کل را بر 1024 تقسیم کنید. دوباره آن را بر 1024 تقسیم کنید تا اندازه آن بر حسب مگابایت (مگابایت) و غیره به دست آید.

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

Get-ChildItem E:\Download | Measure-Object -Property Length -sum

همچنین، می‌توانید از ویژگی sum برای بازیابی اندازه کل استفاده کنید و آن را بر 1 میلیون یا میلیارد تقسیم کنید تا آن را به مگابایت یا گیگابایت تبدیل کنید.

مطلب مرتبط:   نحوه رفع خطای «این برنامه توسط مدیر سیستم شما مسدود شده است» در ویندوز

powershell cmdlet برای مشاهده اندازه پوشه مگابایت گیگابایت

به عنوان مثال، اگر می خواهید مقدار گیگابایت (MBs) را بدانید، دستور زیر را تایپ کرده و Enter را فشار دهید:

(gci E:\Download | measure Length -s).sum / 1Mb

به طور مشابه، 1 مگابایت را با 1 گیگابایت جایگزین کنید تا اندازه پوشه به گیگابایت بازیابی شود.

(gci E:\Download | measure Length -s).sum / 1Gb

اگر می‌خواهید اندازه انواع خاصی از فایل‌ها را در دایرکتوری شناسایی کنید، می‌توانید از کاراکتر علامت * و سپس نوع پسوند فایل استفاده کنید. فقط اندازه فایل را برای نوع فایل مشخص شده نشان می دهد.

به عنوان مثال، برای پیدا کردن فضای اشغال شده توسط تصاویر در یک پوشه، از دستور زیر استفاده کنید:

powershell cmdlet برای مشاهده پوشه بر اساس نوع فایل

(gci E:\download *.jpg | measure Length -s).sum / 1Mb

افزودن یک کاراکتر عام به شما امکان می دهد تعیین کنید که آیا یک نوع فایل خاص بیشترین فضا را در پوشه اشغال می کند یا خیر. سپس می توانید محتویات را بر اساس پسوند فایل فیلتر کرده و در صورت لزوم حذف یا انتقال دهید.

چگونه با استفاده از PowerShell اندازه زیر پوشه را بدست آوریم

powershell cmdlet برای مشاهده اندازه زیر پوشه پوشه

دستور بالا فقط اندازه دایرکتوری یا پوشه اصلی شما را محاسبه می کند. برای محاسبه حجم کل فایل ها در دایرکتوری مشخص شده و زیر شاخه های آن، باید پارامتر -Recurse را به دستور بالا اضافه کنید. علاوه بر این، از پارامتر -force برای دسترسی به فایل های مخفی و سیستمی استفاده می کنیم.

به عنوان مثال، برای به دست آوردن اندازه کل دایرکتوری C:\Users و زیر شاخه های آن، از جمله فایل های مخفی، دستور PowerShell چیزی شبیه به این خواهد بود:

((gci -force c:\Users -Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)

خروجی در این نمونه تقریباً 54 گیگابایت را نشان می دهد. اندازه کل پوشه c:\users. در دستور بالا، پارامتر -ErrorAction SilentlyContinue برای سرکوب هر پیام خطایی که ممکن است در طول فرآیند رخ دهد استفاده می شود.

مطلب مرتبط:   نحوه رفع عدم شروع کدی در ویندوز 10 و 11

چگونه با استفاده از PowerShell اندازه زیر پوشه را در قالب جدول بدست آوریم

نمایش اندازه پوشه اسکریپت Windows powershell ISE

اگر می خواهید اندازه همه زیرپوشه ها را به صورت جداگانه بدانید، می توانید یک اسکریپت PowerShell را اجرا کنید تا یک نمای گرافیکی از همه زیرپوشه ها و اندازه آنها داشته باشید. یک اسکریپت معمولاً مفید است اگر یک فهرست بزرگ با چندین زیرپوشه دارید و نیاز دارید که مرتباً روی آنها کار کنید.

برای اجرای این اسکریپت می توانید از PowerShell ISE استفاده کنید. در اینجا نحوه انجام آن آمده است:

  1. کلید Win را فشار دهید و PowerShell ISE را تایپ کنید. در نتیجه جستجو روی Windows PowerShell ISE کلیک کنید.
  2. سپس دستور زیر را در کنسول 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} گیگابایت’ -f ($len / 1Gb)   [PSCustomObject]@{        foldername = $foldername = $foldername   $foldername ize folders G da ll Out-GridView -Title “اندازه زیر شاخه ها در $targetfolder”
  3. سپس روی Run Script کلیک کنید یا F5 را فشار دهید و منتظر بمانید تا اسکریپت اجرا شود. بسته به اندازه پوشه، گفتگوی “Size Of Subdirectories” را مشاهده خواهید کرد که همه زیر شاخه ها را با اندازه آنها فهرست می کند.

منوی شروع powershell ise

 $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"

علاوه بر این، می توانید از عملگرهای مقایسه PowerShell برای فیلتر کردن نتایج استفاده کنید. به عنوان مثال، برای دریافت اندازه فایل برای پوشه های ایجاد شده بین ژوئن 2023 و ژوئیه 2023، می توانید از دستور زیر استفاده کنید:

(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 یک شرط است. این فرمان بررسی می‌کند که آیا CreationTime فایل‌ها در زیرشاخه در محدوده تاریخ مشخص شده قرار می‌گیرد و تنها در صورتی خروجی را نشان می‌دهد که شرط برقرار باشد. اگر خطایی دریافت کردید، مطمئن شوید که قالب تاریخ و زمان شما در دستور با فرمت سیستم مطابقت دارد و دوباره امتحان کنید.

مطلب مرتبط:   5 راه برای باز کردن تنظیمات صدا در رایانه شخصی ویندوز

اندازه پوشه و زیرپوشه را با استفاده از PowerShell دریافت کنید

File Explorer در ویندوز می تواند به شما کمک کند اندازه هر پوشه و فایلی را محاسبه کنید. با این حال، اگر با چندین پوشه بزرگ یا در سازمانی با صدها رایانه برای مدیریت کار می کنید، استفاده از PowerShell می تواند به شما کمک کند کارها را سریعتر انجام دهید.

با این حال، اگر راه حلی مبتنی بر رابط کاربری گرافیکی را ترجیح می دهید، از ابزار تحلیلگر دیسک استفاده کنید. این ابزارها می توانند به شما کمک کنند تا ساختار فایل سیستم را تجسم کنید و گزارشی از جزئیات محتویاتی که بیشترین فضا را در سیستم شما اشغال می کند را نشان دهید.