-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path02_Osnovni_ukazi.ps1
126 lines (91 loc) · 3.2 KB
/
02_Osnovni_ukazi.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<#
Vsi ukazi v okolju Powershell se pričnejo z glagolom, na primer Get-, Set-, New-
in nadaljujejo s samostalniki v CamelCase. Powershell sicer praviloma ni občutljiv
na velikost črk, a je prav, da gojimo lepo kodo v naših skriptah. Primer ukaza:
Write-Output
Namig: TAB omogoča samodejno dopolnjevanje ukazov naprej, Shift + TAB pa nazaj.
#>
Get-Process
<#
Spremenljivke v Powershell začnemo z oznako $ in imenom spremenljivke. Tip
spremenljivke lahko določimo vnaprej ali pa se določi glede na podatke, ki jih
vanjo shranimo.
#>
$procesi = Get-Process
<#
Za prikaz podatkov v vmesniku imamo več možnosti, bodisi uporabimo Write-Output ali pa preprosto v svojo vrstico vpišemo ime spremenljivke.
#>
Write-Output $procesi
$procesi
<#
Kadar želimo uporabniku prijazno predstaviti določeno spremenljivko, jo vključimo v besedilo.
#>
Write-Output "Vaše uporabniško ime je $env:USERNAME."
<#
Odstranjevanje spremenljivke je nekoliko posebno, saj ime spremenljivke ukazu Remove-Variable posredujemo brez predpone $.
#>
Remove-Variable procesi
<#
Posebni spremenljivki $true in $false sta rezervirani besedi in predstavljata logični
TRUE in FALSE.
#>
$pogoj = $true
<#
Primer pogojnega stavka
#>
if ( $pogoj )
{
Write-Output "Vrednost spremenljivke `$Pogoj je $Pogoj."
}
else
{
Write-Output "Vrednost spremenljivke `$Pogoj je $Pogoj."
}
<#
Sprehajanje po vrednostih
Pri obdelavi večjih količin podatkov v poljih se boste želeli sprehoditi po vrednostih
v teh poljih. Na voljo imamo nekaj pristopov in sicer:
1. $spremenljivka | ForEach-Object
2. foreach ($spremenljivka in $spremenljivke)
Mimogrede smo spoznali še "pipe" znak, | (AltGr + W)
#>
$procesi | ForEach-Object {
$_
}
<#
Najpogosteje uporabljam ta pristop, saj mi omogoča, da sploh večje obdelave testiram na
manjšem obsegu podatkov:
- prikažem samo prvega, primer $procesi[0] ali
- prikažem prve 3, primer $procesi[0..2] ali
- od 20. elementa do koncam primer $procesi[19..$procesi.Count]
- ...
#>
$procesi[0] | ForEach-Object {
$_
}
<#
$_ prikaže atribute objekta ali vrednost v posamezni iteraciji ForEach zanke. Če dodamo
še piko lahko prikaz omejimo na posamezen atribut objekta.
#>
$procesi[0..3] | ForEach-Object {
<#
Generalno atribut posameznega objekta ne moremo uporabiti v drugih funkcijah
(primer spodaj je Write-Output), razen izjemoma, zato jih praviloma posebej definiramo.
#>
$processName = $_.ProcessName
$id = $_.Id
Write-Output "$processName ima ID $id."
}
<#
Za prikaz večje količine podatkov lahko uporabimo GridView, ki v novem interaktivnem oknu
odpre podatke in omogoča tudi iskanje, filtriranje in podobno.
#>
$procesi | Out-GridView
<#
S pomočjo pipe znaka nam je na voljo tudi filtriranje podatkov po različnih atributih
objektov. Operandi za primerjavo so opisani v dokumentaciji na spletnem naslovu:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comparison_operators
Poglejmo primer.
#>
# Procesi, kjer je Id procesa večji kot 10000
$procesi | Where-Object { $_.Id -gt 10000 }