Шта је Виндовс ПоверСхелл скриптовање?

Кључни закључци

  • PowerShell представља скриптни језик који олакшава аутоматизацију компјутерских радњи.
  • Команде су основне јединице PowerShell-а, одговорне за извршавање специфичних задатака. Можете прегледати расположиве команде користећи наредбу „Get-Command“.
  • PowerShell је компатибилан са оперативним системима Windows, macOS и Linux.

PowerShell је скриптни језик који пружа могућност аутоматизације компјутерских задатака на једноставан и поуздан начин. Упознајте се са његовом употребом и почните са креирањем скрипти за ваш Windows рачунар.

Основе PowerShell скриптовања

Како бисте почели да креирате основне PowerShell скрипте на Windows-у, потребно је да се упознате са три кључна елемента:

  • Команде: Ово су јединице које извршавају појединачне функције.
  • Параметри: Они дефинишу „шта“, „када“, „где“ и „како“ за команде.
  • Пипелине (цевоводи): Преносе излаз једне команде на другу, повезујући команде и функције.

Комбинацијом ових елемената можете развити једноставне скрипте за аутоматизацију свакодневних задатака.

Следи пример цевовода који показује како можете спојити више команди за постизање одређеног циља:

Да бисте покренули овај цевовод у PowerShell-у, користите наредбу сличну овој:

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

Детаљније о Командама

Попут других скриптних језика, PowerShell долази са претходно дефинисаним командама за манипулацију објектима и обављање различитих задатака. Ове основне команде унутар PowerShell-а познате су као команде.

Команде (изговарају се као „command-lets“) су мале команде са једном функцијом, које се користе у PowerShell окружењу путем .dll екстензије. Оне су лагани делови кода који се брже извршавају од функција због своје компајлиране природе.

На PowerShell-у је доступно хиљаде команди. Не морате да учите све. Можете почети са неколико основних, а затим наставити учење у процесу скриптовања. Да бисте видели команде које су већ инсталиране на вашем рачунару, покрените:

 Get-Command 

Уколико прегледате резултате, приметићете да оне следе конвенцију именовања глагола и именица, што олакшава разумевање функције сваке команде.

На пример, „Get-Command“ пружа списак доступних команди, „Get-Process“ приказује тренутно активне процесе, док „Copy-Item“ служи за копирање датотека у одређени директоријум.

Команде долазе са опсежном документацијом која укључује примере, упутства за употребу и објашњења њихове функционалности.

Да бисте сазнали више о одређеној команди и њеној употреби, покрените:

 Get-Help <назив-команде> 

Објашњење PowerShell Параметара

Команде могу користити параметре за модификацију свог понашања. Приликом покретања команде или функције, можете да наведете вредности параметара како бисте одредили шта, када, где и како се свака PowerShell команда извршава.

На пример, наредба „Get-Process“ ће приказати све активне процесе у вашем оперативном систему:

Ако желите да прибавите само одређени процес, можете користити параметре. На пример, за приказ свих процеса који се односе на Slack, користите параметар „Name“ уз команду „Get-Process“:

 Get-Process -Name Slack 

Након тога ће бити приказани само процеси са називом „slack“:

Неки параметри су „позициони“, што значи да њихово име није обавезно. У овом случају, „Get-Process -Name Slack“ и „Get-Process Slack“ дају исти резултат.

Свака команда прихвата различите типове параметара. Користите команду „Get-Help“ да видите прихваћене параметре команде у секцији „СИНТАКСА“.

 Get-Help Get-Process 

Видећете листу свих могућих начина на које можете да покренете дату команду:

У овом случају, команда „Get-Process“ прихвата параметре попут „Name“, „Id“, „ComputerName“, „Module“, „FileVersionInfo“, и друге. Симболи означавају:

Симбол

Име

Значење

Празно

Параметар не прихвата унос

Цртица

Означава назив параметра

<>

Угаоне заграде

Чувар места за текст

[]

Заграде

Параметар који може да прихвати једну или више вредности

{}

Витичасте заграде

Параметар прихвата скуп вредности

Параметри који прихватају уносе ће указивати на тип података који су им потребни, као што су текст, цео број, логички или датум-време. На пример, ово:

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

Значи да параметар „Name“ прихвата једну или више вредности текста, док:

 Get-Process -Id <int[]> 

Значи да параметар „Id“ прихвата једну или више целобројних вредности.

Ранији пример са командом „Get-Process“ користио је параметар „Name“ да сузи резултате. Међутим, ако желите да га сузите на још специфичнији процес, можете користити параметар „Id“ који захтева цео број.

 Get-Process -Id 3016 

Тада би требало да видите само један процес на листи:

Креирање Цевовода

PowerShell обрађује све податке као објекте. Како би се формирала скрипта, ти објекти пролазе кроз низ команди или функција повезаних симболом цеви ( | ). Одабир адекватних команди и њихово повезивање у логичан низ путем цевовода је кључно за ефикасно скриптовање.

Претпоставимо да креирате скрипту за сортирање и приказ пет датотека које заузимају највећи простор на дисковном простору унутар фасцикле. Постоје софистициранији начини за креирање скрипте за сортирање датотека, али следећи једнолинијски код је лак за разумевање:

За овај задатак у PowerShell-у можете користити цевовод који изгледа отприлике овако:

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

Чување Цевовода као ПС1 Скрипте

Сада када имамо функционалан цевовод, можете га сачувати као датотеку ПС1 скрипте, како не бисте морали да га куцате сваки пут.

Најлакши начин за креирање ПС1 датотеке је копирање скрипте у Notepad и чување датотеке са екстензијом .ps1.

Након креирања ПС1 датотеке, можете је користити у PowerShell-у покретањем ./ИмеСкрипте.пс1:

Честитамо! Сада сте у могућности да креирате PowerShell ПС1 скрипте.

PowerShell је доступан и на Linux-у и macOS-у

PowerShell је један од најбољих скриптних језика за почетнике. Иако је раније био ограничен на Windows, ажурирана верзија PowerShell-а је сада доступна и на macOS-у и многим Linux дистрибуцијама! Ово чини PowerShell још атрактивнијим јер можете применити ваше знање са Windows-а и на друге оперативне системе.