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

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

Windows PowerShell Scripting چیست؟

به دنبال خودکار کردن وظایف در رایانه شخصی خود هستید؟ اسکریپت PowerShell را امتحان کنید!

خلاصه عناوین

  • مروری بر اسکریپت PowerShell
  • Cmdlet ها با جزئیات
  • پارامترهای PowerShell توضیح داده شده است
  • ایجاد خط لوله
  • ذخیره Pipeline به عنوان اسکریپت PS1
  • PowerShell در لینوکس و macOS نیز موجود است

تعاریف کلیدی

  • PowerShell یک زبان برنامه نویسی است که می تواند به خودکارسازی وظایف رایانه کمک کند.
  • Cmdlet ها دستورات تک کاره پاورشل هستند. می توانید دستورات موجود را با “Get-Command” مشاهده کنید.
  • PowerShell در Windows، macOS و Linux در دسترس است.

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

مروری بر اسکریپت PowerShell

برای شروع ساختن اسکریپت های ساده PowerShell در ویندوز، باید در مورد سه چیز بدانید:

  • Cmdlets: دستورات تک تابعی.
  • پارامترها: چه، چه زمانی، کجا و چگونه از Cmdlets/commands را مشخص کنید.
  • Pipeline: خروجی Cmdlet و پارامترهای آن را می گیرد و به سایر Cmdlet ها و توابع متصل می کند.

با ترکیب هر سه، می توانید اسکریپت های ساده ای بسازید تا به خودکارسازی وظایف کمک کند.

در اینجا یک خط لوله مثال آورده شده است که نشان می دهد چگونه می توانید چندین Cmdlet را برای دستیابی به یک کار ترکیب کنید:

اسکریپت چیپس سیب زمینی

برای اجرای این خط لوله در PowerShell، از دستور زیر استفاده می کنید:

Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Cmdlet ها با جزئیات

مانند هر زبان برنامه نویسی، PowerShell با دستوراتی برای دستکاری اشیا و انجام وظایف مختلف از پیش ساخته شده است. این دستورات اساسی در PowerShell به عنوان Cmdlet شناخته می شوند.

Cmdlet ها (که به صورت command-let تلفظ می شوند) دستورات کوچک و تک کاره ای هستند که در محیط PowerShell با استفاده از پسوند .dll استفاده می شوند. آنها کدهای سبک وزنی هستند که به دلیل ماهیت کامپایل شده خود سریعتر از توابع اجرا می شوند.

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

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

Get-Command

اگر نتایج را اسکن کنید، متوجه خواهید شد که آنها از یک قرارداد نامگذاری فعل-اسم پیروی می کنند. این باعث می شود درک آنچه که یک Cmdlet خاص انجام می دهد آسان تر کند.

به عنوان مثال، Get-Command لیستی از دستورات موجود در PowerShell را ارائه می دهد. Get-Process فرآیندهایی را که در حال حاضر فعال هستند به شما می دهد و Copy-Item یک یا چند فایل را در یک فهرست خاص کپی می کند.

Cmdlet ها همچنین همراه با مستندات گسترده ای هستند که شامل مثال ها، دستورالعمل های استفاده و توضیحاتی در مورد عملکرد آنها می شود.

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

Get-Help <name-of-cmdlet>

پارامترهای PowerShell توضیح داده شده است

Cmdlet ها می توانند پارامترهایی را برای تغییر رفتار خود بپذیرند. هنگامی که یک Cmdlet یا تابع را اجرا می کنید، می توانید مقادیر پارامتر را برای تعیین اینکه هر دستور PowerShell چه، چه زمانی، کجا و چگونه اجرا شود، ارائه دهید.

به عنوان مثال، Get-Process تمام فرآیندهای فعال در سیستم عامل شما را دریافت و فهرست می کند:

فرآیند Cmdlet را دریافت کنید

اما اگر بخواهید فقط یک فرآیند خاص را دریافت کنید چه؟ شما می توانید این کار را با استفاده از پارامترها انجام دهید. به عنوان مثال، برای دریافت تمام فرآیندهای Slack، می توانید از پارامتر Name با Get-Process Cmdlet استفاده کنید:

Get-Process -Name Slack

سپس شما فقط آن فرآیندها را با نام “slack” خواهید دید:

مطلب مرتبط:   صفحه کلید در گوگل کروم برای ویندوز کار نمی کند؟ این راه حل ها را امتحان کنید

استفاده از Get-Process با پارامتر

برخی از پارامترها “positional” هستند که به این معنی است که نام آنها اختیاری است. در این مورد، Get-Process -Name Slack و Get-Process Slack همین کار را انجام می دهند.

هر Cmdlet انواع مختلفی از پارامترها را می پذیرد. از دستور Get-Help برای مشاهده پارامترهای پذیرفته شده یک Cmdlet در بخش SYNTAX استفاده کنید.

Get-Help Get-Process

لیستی از تمام راه های ممکن برای اجرای Cmdlet داده شده را خواهید دید:

پارامترهای نحو Cmdlet

در این حالت، Get-Process Cmdlet پارامترهایی مانند Name، Id، ComputerName، Module، FileVersionInfo و سایر پارامترهای رایج را می پذیرد. نمادها در اینجا نشان می دهند:

سمبل

نام

معنی

جای خالی

پارامتر ورودی را نمی پذیرد

خط ربط

نام پارامتر را نشان می دهد

<>

براکت های زاویه دار

جای جای متن

[]

براکت ها

پارامتری که می تواند یک یا چند مقدار را بپذیرد

{}

بریس ها

پارامتر مجموعه ای از مقادیر را می پذیرد

پارامترهایی که ورودی‌ها را می‌پذیرند، نوع داده مورد نیازشان را نشان می‌دهند، مانند رشته، عدد صحیح، بولی یا DateTime. به عنوان مثال، این:

Get-Process [[-Name] <string[]>]

به این معنی که پارامتر Name یک یا چند مقدار رشته را می پذیرد، در حالی که این:

Get-Process -Id <int[]>

به این معنی که پارامتر Id یک یا چند مقدار صحیح را می پذیرد.

مثال قبلی Get-Process از پارامتر Name برای محدود کردن نتایج استفاده کرد. با این حال، اگر می‌خواهید آن را به یک فرآیند خاص‌تر محدود کنید، می‌توانید از پارامتر ID استفاده کنید، که به یک عدد صحیح همانطور که در نحو ذکر شده نیاز دارد.

Get-Process -Id 3016

سپس باید فقط یک فرآیند را در لیست مشاهده کنید:

استفاده از پارامتر ID در Cmdlet

ایجاد خط لوله

PowerShell با تمام داده ها به عنوان اشیا رفتار می کند. برای ساخت یک اسکریپت، این اشیاء از طریق یک سری Cmdlet یا توابع متصل شده توسط یک نماد لوله ( | ) جریان می یابند. انتخاب Cmdlet های مناسب و اتصال آنها در یک دنباله منطقی با استفاده از خط لوله برای یک اسکریپت موثر بسیار مهم است.

مطلب مرتبط:   چگونه نمایه جستجو را در ویندوز 11 بازسازی کنیم

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

اسکریپت Sort-LargeFiles PS1

برای انجام این کار در PowerShell، از خط لوله ای استفاده کنید که چیزی شبیه به این است:

Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

ذخیره Pipeline به عنوان اسکریپت PS1

اکنون که یک خط لوله در حال کار داریم، می‌توانید آن را به‌عنوان یک فایل اسکریپت PS1 ذخیره کنید، بنابراین لازم نیست هر بار که از آن استفاده می‌کنید به تایپ آن ادامه دهید.

ساده ترین راه برای ایجاد فایل PS1 این است که اسکریپت خود را در Notepad قرار دهید و فایل را با پسوند ps1 ذخیره کنید.

ایجاد یک اسکریپت با دفترچه یادداشت

هنگامی که فایل PS1 خود را ایجاد کردید، می توانید با اجرای ./ScriptName.ps1 از آن در PowerShell استفاده کنید:

استفاده از اسکریپت PS1

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

تبریک می گویم! اکنون می توانید اسکریپت های PowerShell PS1 ایجاد کنید.

PowerShell در لینوکس و macOS نیز موجود است

PowerShell یکی از بهترین زبان های برنامه نویسی مبتدی است که هر کسی می تواند یاد بگیرد. اگرچه PowerShell در گذشته فقط به ویندوز محدود می شد، نسخه به روز شده PowerShell اکنون در macOS و بسیاری از توزیع های لینوکس نیز موجود است! این موضوع PowerShell را جذاب تر می کند زیرا می توانید دانش خود را از ویندوز به سایر سیستم عامل ها منتقل کنید.