پاورشل برای برنامه‌نویسان

پاورشل برای برنامه‌نویسان

@programming_tips

درسنامه: اجرای برنامه‌ها از طریق PowerShell

در این درسنامه یاد می‌گیریم چگونه از PowerShell برای اجرای برنامه‌های مختلف ویندوز، فایل‌های اجرایی (.exe)، اسکریپت‌ها و حتی فایل‌های متنی یا URLها استفاده کنیم. اجرای برنامه‌ها از طریق PowerShell یکی از کاربردی‌ترین مهارت‌هایی است که هر برنامه‌نویس باید بلد باشد، چون با آن می‌توان کارهای روزمره را خودکار کرد، ابزارهای جانبی را فراخوانی کرد یا پروژه‌های مختلف را از خط فرمان اجرا نمود.


اجرای برنامه‌ها در PowerShell

پاور شبل می‌تواند تقریباً هر برنامه‌ای را که در ویندوز نصب شده اجرا کند. برای این کار کافی است نام فایل اجرایی آن را بنویسی. مثلاً برای باز کردن Notepad:

notepad

این دستور برنامه‌ی Notepad را باز می‌کند، درست مثل اینکه در منوی Start روی آن کلیک کرده باشی.

اگر برنامه در مسیرهای شناخته‌شده‌ی سیستم (PATH) نباشد، باید مسیر کامل آن را بنویسی. مثلاً:

& "C:\Program Files\Google\Chrome\Application\chrome.exe"

در اینجا از نماد & (که در PowerShell به آن call operator می‌گویند) استفاده شده تا فایل اجرایی اجرا شود.


اجرای فایل‌های با پسوند خاص

پاورشل بر اساس پسوند فایل، تشخیص می‌دهد چگونه آن را باز کند:

  • .exe → به صورت برنامه اجرایی
  • .ps1 → به صورت اسکریپت PowerShell
  • .bat یا .cmd → به صورت فایل Batch
  • .txt, .csv, .html و ... → با برنامه‌ی پیش‌فرض سیستم

برای مثال:

notepad.exe C:\Users\Ali\Documents\notes.txt

یا برای اجرای یک فایل Batch:

.\backup.bat

توجه کن که برای فایل‌های محلی باید از .\ در ابتدای نام فایل استفاده کنی تا PowerShell بداند فایل در مسیر جاری است.


اجرای اسکریپت‌های PowerShell

برای اجرای یک اسکریپت PowerShell (مثلاً script.ps1)، کافی است مسیر آن را بدهی:

.\script.ps1

اما ممکن است با خطای "running scripts is disabled on this system" مواجه شوی.

این خطا به خاطر Execution Policy است. برای رفع آن (در محیط امن آموزشی)، می‌توانی سیاست اجرا را موقتاً تغییر دهی:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

بعد از اجرای این دستور، می‌توانی اسکریپت را بدون خطا اجرا کنی.


ارسال آرگومان به برنامه‌ها

اغلب برنامه‌ها پارامترهایی دارند که می‌توانی هنگام اجرا به آن‌ها بدهی.

برای مثال، اجرای Notepad با باز کردن فایل خاص:

notepad.exe "C:\log.txt"

یا باز کردن Chrome با یک وب‌سایت مشخص:

& "C:\Program Files\Google\Chrome\Application\chrome.exe" "https://openai.com"

حتی می‌توانی چند آرگومان پشت سر هم بدهی:

python app.py --debug --port 8000

در این حالت PowerShell python را اجرا کرده و بقیه‌ی آرگومان‌ها را به آن منتقل می‌کند.


اجرای برنامه‌ها در پس‌زمینه

گاهی نمی‌خواهی اجرای یک برنامه، PowerShell را متوقف کند.

برای این کار از Start-Process استفاده می‌شود:

Start-Process notepad.exe

با این دستور Notepad باز می‌شود ولی PowerShell بلافاصله کنترل را به تو برمی‌گرداند.

می‌توانی پارامترهای مختلفی هم به آن بدهی، مثل مسیر فایل، آرگومان‌ها یا تنظیمات اجرای مخفی:

Start-Process "chrome.exe" -ArgumentList "https://google.com"

اگر می‌خواهی برنامه بدون پنجره باز شود:

Start-Process "notepad.exe" -WindowStyle Hidden

و برای اجرای برنامه با دسترسی Administrator:

Start-Process powershell.exe -Verb RunAs

اجرای برنامه و انتظار برای اتمام آن

اگر بخواهی PowerShell منتظر بماند تا برنامه تمام شود، از پارامتر -Wait استفاده کن:

Start-Process notepad.exe -Wait
Write-Host "Notepad closed. Continuing script..."

اینجا PowerShell بعد از بستن Notepad ادامه‌ی دستور بعدی را اجرا می‌کند.


اجرای فایل‌ها یا URLها با Invoke-Item

اگر بخواهی فایل یا لینک را با برنامه پیش‌فرض سیستم باز کنی، از Invoke-Item استفاده کن:

Invoke-Item "C:\Users\Ali\Pictures\photo.jpg"
Invoke-Item "https://github.com"

این دستور فایل را با برنامه‌ی پیش‌فرض باز می‌کند — مثلاً عکس با Photos و لینک با مرورگر.


اجرای خروجی یک دستور دیگر

PowerShell به لطف pipeline (|) می‌تواند خروجی یک دستور را به ورودی برنامه‌ای دیگر بدهد.

مثلاً می‌خواهی لیست فایل‌ها را در Notepad باز کنی:

Get-ChildItem | Out-File files.txt
notepad files.txt

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


نکات مهم

  • همیشه اگر مسیر شامل فاصله است، آن را داخل " بنویس.
  • اگر برنامه در مسیر PATH نیست، باید مسیر کاملش را بنویسی.
  • برای اجرای فایل‌های PowerShell (.ps1)، حواست به Execution Policy باشد.
  • با Start-Process می‌توانی اجرای هم‌زمان، بدون پنجره، یا با دسترسی ادمین انجام دهی.

جمع‌بندی

در این درس یاد گرفتی که PowerShell چطور می‌تواند مانند یک لانچر قدرتمند عمل کند:

  • با & یا نام مستقیم برنامه‌ها را اجرا می‌کنی
  • با Start-Process اجرای کنترل‌شده و پس‌زمینه‌ای داری
  • با Invoke-Item فایل‌ها و لینک‌ها را باز می‌کنی
  • و با ترکیب دستورات، می‌توانی اجرای برنامه‌ها را به بخشی از اسکریپت خودکار تبدیل کنی

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

Report Page