Пры працы з 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 = $nullLoops
Сінтаксіс цыклаў:
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 () {} elseswitch($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
