PowerShell per a principiants

Quan treballem amb PowerShell, el primer que ens trobem són les ordres (Cmdlets).
La crida d'ordres té aquest aspecte:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Ajuda

S'accedeix a l'ajuda a PowerShell mitjançant l'ordre Get-Help. Es pot especificar un dels paràmetres: exemple, detallat, complet, en línia, showWindow.

Get-Help Get-Service -full retornarà la descripció completa de l'operació de l'ordre Get-Service
Get-Help Get-S* mostrarà totes les ordres i funcions disponibles que comencen per Get-S*

També hi ha documentació detallada al lloc web oficial de Microsoft.

Aquí teniu un exemple d'ajuda per a l'ordre Get-Evenlog

PowerShell per a principiants

Si els paràmetres estan entre claudàtors [], són opcionals.
És a dir, en aquest exemple, cal el nom del propi registre i el nom del paràmetre No. Si el tipus de paràmetre i el seu nom estan entre parèntesis, aquest paràmetre és opcional.

Si mireu el paràmetre EntryType, podeu veure els valors que es troben entre claudàtors. Per a aquest paràmetre, només podem utilitzar valors predefinits entre claus.

La informació sobre si el paràmetre és obligatori es pot veure a la descripció següent al camp Obligatori. A l'exemple anterior, l'atribut After és opcional perquè Obligatori està definit com a fals. A continuació, veiem el camp Posició al costat que diu Nom. Això vol dir que només podeu fer referència al paràmetre pel nom, és a dir:

Get-EventLog -LogName Application -After 2020.04.26

Com que el paràmetre LogName tenia el número 0 en lloc de Named, això vol dir que podem fer referència al paràmetre sense nom, però especificant-lo en la seqüència desitjada:

Get-EventLog Application -After 2020.04.26

Suposem aquest ordre:

Get-EventLog -Newest 5 Application

àlies

Perquè puguem utilitzar les ordres habituals de la consola a PowerShell, hi ha àlies (Àlies).

Un exemple d'àlies per a l'ordre Set-Location és cd.

És a dir, en lloc de cridar l'ordre

Set-Location “D:”

podem utilitzar

cd “D:”

història

Per veure l'historial de trucades d'ordres, podeu utilitzar Get-History

Executeu l'ordre des de l'historial Invoke-History 1; Invocar l'historial 2

Història clara

Canonada

Un pipeline a powershell és quan el resultat de la primera funció es passa a la segona. Aquí teniu un exemple amb el pipeline:

Get-Verb | Measure-Object

Però per entendre millor el pipeline, prenguem un exemple més senzill. Teniu un equip

Get-Verb "get"

Si truqueu a l'ajuda Get-Help Get-Verb -Full, veurem que el paràmetre Verb pren l'entrada de canalització i ByValue s'escriu entre parèntesis.

PowerShell per a principiants

Això vol dir que podem reescriure Get-Verb "get" a "get" | GetVerb.
És a dir, el resultat de la primera expressió és una cadena i es passa al paràmetre Verb de l'ordre Get-Verb mitjançant l'entrada de pipline per valor.
També l'entrada de canalització pot ser ByPropertyName. En aquest cas, passarem un objecte que tingui una propietat amb un nom similar Verb.

Variables

Les variables no s'escriuen amb força i s'especifiquen amb un $ al davant

$example = 4

El símbol > significa posar les dades
Per exemple, $example > Fitxer.txt
Amb aquesta expressió, posarem les dades de la variable $example en un fitxer
Igual que Set-Content -Value $example -Path File.txt

Matrius

Inicialització de la matriu:

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

Inicialització de la matriu buida:

$ArrayExample = @()

Obtenció de valor per índex:

$ArrayExample[0]

Obteniu tota la matriu:

$ArrayExample

Afegeix un element:

$ArrayExample += “Third”

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

Ordenar per:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Però la matriu en si es manté sense canvis amb aquesta ordenació. I si volem que la matriu tingui dades ordenades, hem d'assignar els valors ordenats:

$ArrayExample = $ArrayExample | Sort

No hi ha manera d'eliminar un element d'una matriu a PowerShell, però ho podeu fer així:

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

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

Eliminació d'una matriu:

$ArrayExample = $null

bucles

Sintaxi de bucle:

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

Sortida del bucle de ruptura.

Omet l'element de continuació.

Enunciats condicionals

if () {} elseif () {} else

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

function

Definició de la funció:

function Example () {
  echo &args
}

Llançament de la funció:

Example “First argument” “Second argument”

Definició d'arguments en una funció:

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

function Example ($first, $second) {}

Llançament de la funció:

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

Excepció

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

Font: www.habr.com

Afegeix comentari