PowerShell for beginners

При роботі з PowerShell перше, з чим ми стикаємося цієї команди (Cmdlet).
Виклик команди виглядає так:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Документи

Виклик довідки PowerShell здійснюється за допомогою команди Get-Help. Можна вказати один із параметрів: example, detailed, full, online, showWindow.

Get-Help Get-Service -full поверне повний опис роботи команди Get-Service
Get-Help Get-S* покаже всі доступні команди та функції, що починаються з Get-S*

Також на офіційному сайті Microsoft є детальна документація.

Ось приклад довідки по команді Get-Evenlog

PowerShell for beginners

Якщо параметри укладені у квадратні дужки [], вони є необов'язковими.
Тобто в цьому прикладі сама назва журналу є обов'язковою, а назва параметра ні. Якщо тип параметра та його назва укладені в дужки разом, цей параметр необов'язковий.

Якщо подивитися на параметр EntryType, то видно значення, які укладені у фігурні дужки. Для цього параметра ми можемо використовувати лише визначені значення у фігурних дужках.

Інформацію про те, чи є параметр обов'язковим, ми можемо побачити в описі нижче в полі Required. У прикладі вище атрибут After є необов'язковим, оскільки навпаки Required стоїть false. Далі ми бачимо поле Position навпроти якого написано Named. Це означає, що звернутися до параметра можна тільки по імені, тобто:

Get-EventLog -LogName Application -After 2020.04.26

Оскільки у параметра LogName замість Named було вказано число 0, це означає, що ми можемо звернутися до параметра без імені, а вказавши його в потрібній послідовності:

Get-EventLog Application -After 2020.04.26

Допустимо і такий порядок:

Get-EventLog -Newest 5 Application

кличка

Щоб ми могли використовувати звичні команди з консолі PowerShell є псевдоніми (Alias).

Прикладом псевдоніма для команди Set-Location є cd.

Тобто замість виклику команди

Set-Location “D:”

ми можемо використовувати

cd “D:”

Історія

Щоб переглянути історію дзвінків команд, можна використовувати Get-History

Виконати команду з історії Invoke-History 1; Invoke-History 2

Очистити історію Clear-History

Трубопровід

Пайплайн в PowerShell це коли результат виконання першої функції передається в другу. Ось приклад використання пайплайну:

Get-Verb | Measure-Object

Але щоб краще зрозуміти пайплайн, візьмемо приклад простіше. Є команда

Get-Verb "get"

Якщо викликати довідку Get-Help Get-Verb -Full, то ми побачимо, що параметр Verb приймає pipline input і в дужках написано ByValue.

PowerShell for beginners

Це означає, що ми можемо переписати Get-Verb "get" на "get" | Get-Verb.
Тобто результат першого виразу це рядок і він передається до параметра Verb команди Get-Verb через pipline input за значенням.
Також pipline input може бути ByPropertyName. У цьому випадку ми будемо передавати об'єкт у якого є проперти зі схожою назвою Verb.

Змінні

Змінні не є строго типізованими та задаються із зазначенням символу $ попереду

$example = 4

Символ > означає помістити дані в
Наприклад, $example > File.txt
Цим виразом ми помістимо дані зі змінної $example у файл
Аналогічно команді Set-Content -Value $example -Path File.txt

Масиви

Ініціалізація масиву:

$ArrayExample = @(“First”, “Second”)

Ініціалізація порожнього масиву:

$ArrayExample = @()

Отримання значення за індексом:

$ArrayExample[0]

Отримати весь масив:

$ArrayExample

Додавання елемента:

$ArrayExample += “Third”

$ArrayExample += @(“Fourth”, “Fifth”)

Сортування:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Але сам масив при такому сортуванні залишається без зміни. І якщо ми хочемо, щоб у масиві були відсортовані дані, то потрібно зробити присвоєння відсортованих значень:

$ArrayExample = $ArrayExample | Sort

За фактом видалення з масиву елемента PowerShell немає, але можна це зробити ось таким чином:

$ArrayExample = $ArrayExample | where { $_ -ne “First” }

$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }

Видалення масиву:

$ArrayExample = $null

Петлі

Синтаксис циклів:

for($i = 0; $i -lt 5; $i++){}

$i = 0
while($i -lt 5){}

$i = 0
do{} while($i -lt 5)

$i = 0
do{} until($i -lt 5)

ForEach($item in $items){}

Вихід із циклу break.

Пропустити елемент continue.

Умовні заяви

if () {} elseif () {} else

switch($someIntValue){
  1 { “Option 1” }
  2 { “Option 2” }
  default { “Not set” }
}

функція

Визначення функції:

function Example () {
  echo &args
}

Запуск функції:

Example “First argument” “Second argument”

Визначення аргументів у функції:

function Example () {
  param($first, $second)
}

function Example ($first, $second) {}

Запуск функції:

Example -first “First argument” -second “Second argument”

Виняток

try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}

Джерело: habr.com

Додати коментар або відгук