При роботі з 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
Якщо параметри укладені у квадратні дужки [], вони є необов'язковими.
Тобто в цьому прикладі сама назва журналу є обов'язковою, а назва параметра
Якщо подивитися на параметр 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.
Це означає, що ми можемо переписати 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