Kur punojmë me PowerShell, gjëja e parë me të cilën ndeshemi janë komandat (Cmdlet).
Thirrja e komandës duket kështu:
Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]
Ndihmë
Thirrja e ndihmës në PowerShell bëhet me komandën Get-Help. Mund të specifikoni një nga parametrat: example, detailed, full, online, showWindow.
Get-Help Get-Service -full do të kthejë një përshkrim të plotë të funksionimit të komandës Get-Service
Get-Help Get-S* do të shfaqë të gjitha komandat dhe funksionet e disponueshme që fillojnë me Get-S*
Gjithashtu, në faqen zyrtare të Microsoft ka dokumentacion të detajuar.
Ja një shembull i ndihmës për komandën Get-Evenlog

Nëse parametrat vendosen në kllapa katrore [], atëherë ata janë opsionalë.
Pra, në këtë shembull vetë emri i log-ut është i detyrueshëm, ndërsa emri i parametrit jo. Nëse lloji i parametrit dhe emri i tij vendosen së bashku në kllapa, atëherë ky parametër është opsional.
Nëse shikojmë parametrin EntryType, do të vërejmë vlerat që janë vendosur në kllapa kaçurrela. Për këtë parametër mund të përdorim vetëm vlerat e paracaktuara brenda kllapave kaçurrela.
Informacionin nëse një parametër është i detyrueshëm mund ta shohim në përshkrimin më poshtë, te fusha Required. Në shembullin e mësipërm atributi After është opsional, sepse përballë Required shkruhet false. Më pas shohim fushën Position, përballë së cilës shkruhet Named. Kjo do të thotë se parametrin mund ta përdorim vetëm sipas emrit, pra:
Get-EventLog -LogName Application -After 2020.04.26Meqenëse për parametrin LogName, në vend të Named, ishte specifikuar numri 0, kjo do të thotë se mund ta përdorim parametrin pa emër, duke e vendosur në rendin e duhur:
Get-EventLog Application -After 2020.04.26Lejohet edhe ky renditje:
Get-EventLog -Newest 5 ApplicationAlias
Që të mund të përdorim komandat e zakonshme nga konzola në PowerShell, ekzistojnë pseudonime (Alias).
Një shembull pseudonimi për komandën Set-Location është cd.
Pra, në vend që të thërrasim komandën
Set-Location âD:âmund tĂ« pĂ«rdorim
cd âD:âHistoria
Për të parë historikun e thirrjeve të komandave, mund të përdorni Get-History
Për të ekzekutuar një komandë nga historiku: Invoke-History 1; Invoke-History 2
Për të pastruar historikun: Clear-History
Pipeline
Pipeline në PowerShell është kur rezultati i ekzekutimit të funksionit të parë i kalon funksionit të dytë. Ja një shembull i përdorimit të pipeline:
Get-Verb | Measure-ObjectPor, për ta kuptuar më mirë pipeline, le të marrim një shembull më të thjeshtë. Ekziston komanda
Get-Verb "get"Nëse hapim ndihmën me Get-Help Get-Verb -Full, do të shohim se parametri Verb pranon pipeline input dhe në kllapa tregohet ByValue.

Kjo do tĂ« thotĂ« se mund ta rishkruajmĂ« Get-Verb âgetâ si âgetâ | Get-Verb.
Pra, rezultati i shprehjes së parë është një varg dhe ai i kalon parametrit Verb të komandës Get-Verb përmes pipeline input sipas vlerës.
Pipeline input mund të jetë edhe ByPropertyName. Në këtë rast do të kalojmë një objekt që ka një property me emër të ngjashëm me Verb.
Variablat
Variablat nuk janë të tipizuara në mënyrë rigoroze dhe përcaktohen duke vendosur simbolin $ në fillim
$example = 4Simboli > do të thotë të vendosësh të dhënat në
Për shembull, $example > File.txt
Me kĂ«tĂ« shprehje do tâi vendosim tĂ« dhĂ«nat nga variabli $example nĂ« skedar
Njësoj si komanda Set-Content -Value $example -Path File.txt
Vargje
Inicializimi i vargut:
$ArrayExample = @(âFirstâ, âSecondâ)Inicializimi i njĂ« vargu bosh:
$ArrayExample = @()Marrja e vlerës sipas indeksit:
$ArrayExample[0]Marrja e të gjithë vargut:
$ArrayExampleShtimi i një elementi:
$ArrayExample += âThirdâ$ArrayExample += @(âFourthâ, âFifthâ)Renditja:
$ArrayExample | Sort$ArrayExample | Sort -DescendingPor vetë vargu mbetet i pandryshuar pas kësaj renditjeje. Nëse duam që vargu të përmbajë të dhëna të renditura, duhet të bëjmë caktimin e vlerave të renditura:
$ArrayExample = $ArrayExample | SortNë fakt, në PowerShell nuk ka fshirje të drejtpërdrejtë të një elementi nga vargu, por mund të bëhet në këtë mënyrë:
$ArrayExample = $ArrayExample | where { $_ -ne âFirstâ }$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }
Fshirja e vargut:
$ArrayExample = $nullCiklet
Sintaksa e cikleve:
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){}Dalja nga cikli me break.
Kapërcimi i elementit me continue.
Deklaratat kushtore
if () {} elseif () {} elseswitch($someIntValue){
1 { âOption 1â }
2 { âOption 2â }
default { âNot setâ }
}
Funksioni
Përcaktimi i funksionit:
function Example () {
echo &args
}Nisja e funksionit:
Example âFirst argumentâ âSecond argumentâPĂ«rcaktimi i argumenteve nĂ« funksion:
function Example () {
param($first, $second)
}
function Example ($first, $second) {}Nisja e funksionit:
Example -first âFirst argumentâ -second âSecond argumentâPĂ«rjashtim
try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}
Burimi: habr.com
