Пры працы з 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
Loops
Сінтаксіс цыклаў:
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