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

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

Windows PowerShell به شما امکان می دهد هر چیزی را در رایانه شخصی خود به صورت خودکار انجام دهید: در اینجا نحوه شروع به کار آمده است

اگر رایانه شخصی شما بتواند کارهای خسته کننده را برای شما انجام دهد چه؟ با Windows PowerShell می تواند. در اینجا نحوه استفاده من از PowerShell برای خودکارسازی کارهای تکراری روزمره است که در غیر این صورت تمایل کمتری به انجام آنها دارم.

خلاصه عناوین

  • Windows PowerShell چیست؟
  • آشنایی با اصول پاورشل
  • نوشتن اسکریپت های پاورشل ساده
  • نوشتن یک اسکریپت PowerShell برای خودکارسازی سازماندهی فایل های روزانه
  • برنامه ریزی و اجرای وظایف

اگر رایانه شخصی شما بتواند کارهای خسته کننده را برای شما انجام دهد چه؟ با Windows PowerShell می تواند. در اینجا نحوه استفاده من از PowerShell برای خودکارسازی کارهای تکراری روزمره است که در غیر این صورت تمایل کمتری به انجام آنها دارم.

Windows PowerShell چیست؟

PowerShell یک پوسته خط فرمان و زبان برنامه نویسی است که در ویندوز تعبیه شده است که می تواند به شما در خودکارسازی وظایف اداری و تکراری کمک کند. اگر قبلاً از آن استفاده کرده اید، ممکن است قبلاً احساس آشنایی داشته باشید. اما اگر در آن تازه کار هستید، نگران نباشید – PowerShell به راحتی قابل استفاده است.

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

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

آشنایی با اصول پاورشل

برای تسلط بر PowerShell، ابتدا باید اجزای اصلی آن را درک کنید:

  • Cmdlets: Cmdlet ها (که با دستور lets تلفظ می شوند) دستورات ساده تک منظوره هستند. برای مثال، Get-Date را تایپ کنید تا روز، تاریخ، سال و ساعت فعلی را بازیابی کنید.
  • اسکریپت و خطوط لوله: یک اسکریپت PowerShell ترکیبی از دستورات است که توسط یک عملگر لوله (|) از هم جدا شده اند تا دستورات را به هم متصل کرده و خروجی یک فرمان را به عنوان ورودی به دستور بعدی ارسال کنند. به عنوان مثال، دستور زیر را برای بازیابی لیستی از فرآیندهای مرتب شده بر اساس استفاده از CPU تایپ کنید:

    فرآیند دریافت | مرتب سازی شی CPU -نزولی

  • اشیاء: PowerShell به جای متن ساده، اشیاء را خروجی می دهد و دستکاری داده ها را آسان تر می کند. به عنوان مثال، دستور زیر را برای بازیابی تاریخ و زمان فعلی به عنوان یک شی با ویژگی های خاص تایپ کنید:

    تاریخ دریافت | انتخاب شی – روز، ماه، سال

  • فیلتر کردن و قالب‌بندی: از Where-Object برای فیلتر کردن و از Format-Table یا Format-List برای دریافت خروجی سفارشی استفاده کنید. به عنوان مثال، دستور زیر را تایپ کنید تا فایل های بزرگتر از 50 مگابایت را در پوشه های Downloads خود پیدا کنید و نام و اندازه آنها را در یک جدول نمایش دهید:

    Get-ChildItem -Path “E:\Downloads” -Recurse | Where-Object {$_.Length -gt 50MB } | قالب-نام جدول، طول

get-process | sort-object CPU -Descending

Get-Date | Select-Object -Property Day, Month, Year

Get-ChildItem -Path "E:\Downloads" -Recurse | Where-Object {$_.Length -gt 50MB } | Format-Table Name, Length

دیگر cmdlet های PowerShell ضروری عبارتند از Get-Help برای یادگیری در مورد هر cmdlet، Get-Command برای دریافت لیست دستورات و Get-ChildItem برای کاوش فایل ها و پوشه ها در یک فهرست.

برای کسب اطلاعات بیشتر در مورد دستورات و اصول اولیه اسکریپت، توصیه می کنیم راهنمای ما در مورد دستورات ضروری PowerShell و برنامه نویسی Windows PowerShell را مطالعه کنید. این به شما کمک می کند تا فراتر از اصول اولیه بروید و هر کاری که PowerShell می تواند انجام دهد را عمیق تر کنید.

نوشتن اسکریپت های پاورشل ساده

می‌توانید از PowerShell برای خودکار کردن تقریباً هر چیزی استفاده کنید، مانند تغییر نام دسته‌ای فایل‌ها برای ثبات یا خودکار کردن راه‌اندازی برنامه‌ها. بیایید چند اسکریپت ساده Windows PowerShell بنویسیم تا آن را در عمل ببینیم.

اگر هنگام اجرای یک اسکریپت در مورد خط مشی اجرا با خطایی مواجه شدید، ممکن است لازم باشد با اجرای “Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass” به طور موقت اجرای اسکریپت را مجاز کنید.

تغییر نام دسته ای فایل ها در یک پوشه

می توانید از PowerShell برای کپی، انتقال و حذف فایل ها در رایانه شخصی خود استفاده کنید. همچنین می‌توانید فایل‌هایی را با انواع فایل‌های خاص تغییر نام دهید. به عنوان مثال، در اینجا نحوه تغییر نام چندین فایل متنی با جایگزین کردن پیشوند “oldco” با “newco” در نام فایل ها آمده است:

Get-ChildItem -Path "C:\CompanyFiles" -Filter "*.txt" | Rename-Item -NewName {$_.Name -replace "oldco","newco"}

در اسکریپت بالا، “.txt” فیلتر پسوند فایل است. برای جستجوی انواع فایل های مختلف، می توانید آن را به .jpg، .docx، و غیره تغییر داده و تنظیم کنید.

راه اندازی خودکار برنامه

اگر هر روز همان مجموعه برنامه‌ها را باز می‌کنید، می‌توانید یک اسکریپت PowerShell بنویسید تا آنها را با یک کلیک اجرا کنید:

#Open multiple apps with a single click
Start-Process "notepad.exe"
Start-Process "calc.exe"
Start-Process "Chrome.exe"
Start-Process "slack.exe"

اسکریپت را در یک فایل Notepad قرار دهید و آن را به عنوان LaunchFavoriteApps.ps1 ذخیره کنید. سپس، به سادگی روی فایل دوبار کلیک کنید تا همه برنامه های لیست شده در اسکریپت اجرا شوند

فایل های مهم را در یک مکان پشتیبان کپی کنید

با استفاده از اسکریپت زیر می توانید به صورت دوره ای از فایل های مهم در یک مکان پشتیبان تهیه کنید. مطمئن شوید که مسیرهای مبدا و مقصد را در صورت نیاز تغییر دهید:

#Copy MyFiles folder contents to MyFilesBackup in D:\
Copy-Item -Path "C:\Documents\MyFiles" -Destination "D:\MyFilesBackup" -Recurse

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

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

یک فایل Notepad جدید باز کنید و اسکریپت زیر را Paste کنید. مطمئن شوید که مسیر پوشه منبع را در اسکریپت تغییر دهید تا با مسیر پوشه دانلودها مطابقت داشته باشد:

# Change the source folder path below
$sourcePath = "E:\Downloads"
# Add file mapping folder names; the Others folder includes all the files that do not match file types in the other categories
$fileTypes = @{
"Documents" = @("*.docx", "*.pdf", "*.txt")
"Images" = @("*.jpg", "*.png", "*.gif")
"Media" = @("*.mp4", "*.mp3", "*.mov")
"Zip" = @("*.zip", "*.rar")
"ISO" = @("*.iso")
"Others" = @("*")
}
# Iterate through each folder type and prepare a destination folder for organizing files
foreach ($folder in $fileTypes.Keys) {
# Create the destination folder path
$destPath = Join-Path -Path $sourcePath -ChildPath $folder
# Check if the destination folder exists, and create it if it doesn't
if (!(Test-Path -Path $destPath)) {
New-Item -ItemType Directory -Path $destPath | Out-Null
}
# Move matching files from the source folder to the destination folder based on file type patterns
foreach ($pattern in $fileTypes[$folder]) {
Get-ChildItem -Path $sourcePath -Filter $pattern -File -ErrorAction SilentlyContinue | ForEach-Object {
try {
Move-Item -Path $_.FullName -Destination $destPath -Force -ErrorAction Stop
Write-Output "Moved: $($_.FullName) to $destPath"
} catch {
Write-Warning "Failed to move file: $($_.FullName). Error: $_"
}
}
}
}
Write-Output "Files organized successfully!"
 

برای ذخیره فایل، روی File > Save As کلیک کنید و OrganizeDownloadsFolder.ps1 را به عنوان نام فایل تایپ کنید. سپس روی Save as Type کلیک کنید و All Files را انتخاب کنید. برای اجرای اسکریپت روی فایل OrganizeDownloadsFolder.ps1 دوبار کلیک کنید.

برنامه ریزی و اجرای وظایف

البته نوشتن یک اسکریپت بخشی از فرآیند اتوماسیون است. بخش دوم این است که اطمینان حاصل شود که اسکریپت می تواند به طور خودکار خود را برای انجام کار اجرا کند. برای انجام این کار، می‌توانیم کارهای زمان‌بندی شده برای اجرای یک اسکریپت روزانه یا در صورت نیاز ایجاد کنیم.

PowerShell را باز کنید، سپس اسکریپت زیر را کپی و پیست کنید و Enter را بزنید. مطمئن شوید که «J:\OrganizeDownloadsFolder.ps1» را با مسیر فایل کامل به اسکریپت OrganizeDownloadsFolder.ps1 خود جایگزین کنید.

$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File 'J:\OrganizeDownloadsFolder.ps1'"
$trigger = New-ScheduledTaskTrigger -Daily -At "5:00 PM"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "OrganizeDownloadsFolderDaily"

پس از اتمام، اینتر را بزنید. این اسکریپت یک کار زمان‌بندی شده در Task Scheduler ایجاد می‌کند تا اسکریپت سازماندهی فایل را روزانه در ساعت 5:00 بعد از ظهر اجرا کند. اگر زمان دیگری را ترجیح می دهید، می توانید آن را در اسکریپت بالا تغییر دهید.

فراتر از این، می‌توانید از PowerShell برای خودکارسازی سایر کارهای روزمره استفاده کنید، مانند اسکریپت نظارت بر فضا که به شما هشدار می‌دهد در صورت تمام شدن فضای خالی در درایو اصلی، محافظت انبوه اسناد PDF با رمز عبور، و حتی اعمال پویا والپیپرها. از یک پوشه تصویر

مطلب مرتبط:   نحوه آزادسازی رم و کاهش مصرف رم در ویندوز