PowerShell барои шурӯъкунандагон

Ҳангоми кор бо PowerShell, аввалин чизе, ки мо дучор мешавем, фармонҳо (Cmdlets) мебошанд.
Даъвати фармон чунин менамояд:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Кӯмак

Кӯмак дар PowerShell бо истифода аз фармони Get-Help дастрас аст. Шумо метавонед яке аз параметрҳоро муайян кунед: мисол, муфассал, пурра, онлайн, showWindow.

Get-Help Get-Service -full тавсифи пурраи кори фармони Get-Serviceро бармегардонад
Get-Help Get-S* ҳама фармонҳо ва функсияҳои дастрасро аз Get-S* оғоз мекунад

Дар вебсайти расмии Microsoft инчунин ҳуҷҷатҳои муфассал мавҷуданд.

Дар ин ҷо як кӯмаки намунавӣ барои фармони Get-Evenlog оварда шудааст

PowerShell барои шурӯъкунандагон

Агар параметрҳо дар қавси мураббаъ [] дохил карда шуда бошанд, онҳо ихтиёрӣ мебошанд.
Яъне дар ин мисол номи худи маҷалла ҳатмист ва номи параметр Не. Агар навъи параметр ва номи он дар дохили қавс якҷоя шуда бошанд, пас параметр ихтиёрӣ аст.

Агар шумо ба параметри EntryType нигаред, шумо метавонед арзишҳоеро бинед, ки дар қавсҳои ҷингила дохил карда шудаанд. Барои ин параметр, мо метавонем танҳо арзишҳои пешакӣ муайяншударо дар қавсҳои ҷингила истифода барем.

Мо метавонем маълумотро дар бораи он, ки оё параметр лозим аст, дар тавсифи зер дар майдони зарурӣ дида метавонем. Дар мисоли дар боло овардашуда, аттрибутӣ Баъд аз ихтиёрӣ аст, зеро Required ба нодуруст муқаррар карда шудааст. Баъдан, мо майдони Мавқеъро дар муқобили он мебинем, ки ном дорад. Ин маънои онро дорад, ки ба параметр танҳо бо ном дастрас шудан мумкин аст, яъне:

Get-EventLog -LogName Application -After 2020.04.26

Азбаски параметри LogName ба ҷои Номдор рақами 0-ро дошт, ин маънои онро дорад, ки мо метавонем ба параметр бидуни ном дастрасӣ пайдо кунем, аммо бо нишон додани он бо пайдарпаии лозимӣ:

Get-EventLog Application -After 2020.04.26

Биёед ин тартибро фарз кунем:

Get-EventLog -Newest 5 Application

номи кӯтоҳшуда

Барои он ки мо метавонем фармонҳои шиносро аз консол истифода барем, PowerShell дорои тахаллусҳо (тахаллус) дорад.

Намунаи тахаллус барои фармони Set-Location cd мебошад.

Яъне ба ҷои даъват кардани фармон

Set-Location “D:”

истифода бурда метавонем

cd “D:”

таърих

Барои дидани таърихи зангҳои фармон, шумо метавонед аз Get-History истифода баред

Иҷро кардани фармон аз таърих Invoke-History 1; Таърихи даъват 2

Таърихро тоза кунед Таърихро тоза кунед

Борбадозии

Қубур дар powershell вақтест, ки натиҷаи функсияи якум ба дуюм интиқол дода мешавад. Ин аст мисоли истифодаи қубур:

Get-Verb | Measure-Object

Аммо барои беҳтар фаҳмидани қубур, биёед як мисоли соддатарро гирем. Як даста вуҷуд дорад

Get-Verb "get"

Агар мо Get-Help Get-Verb -Full help -ро даъват кунем, мебинем, ки параметри Verb вуруди пиплинро қабул мекунад ва ByValue дар қавс навишта шудааст.

PowerShell барои шурӯъкунандагон

Ин маънои онро дорад, ки мо метавонем Get-Verb "get" -ро ба "даст" | Гирифтан-феъли.
Яъне, натиљаи ифодаи аввал сатр аст ва он ба параметри Verb-и фармони Get-Verb тавассути вуруди пиплин аз рўи арзиш гузаронида мешавад.
Инчунин вуруди қубур метавонад 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){}

Аз ҳалқаи танаффус баромадан.

Хориҷ кардани унсури идома.

Изҳороти шартӣ

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{
}

Манбаъ: will.com

Илова Эзоҳ