10. gyakorlat
PowerShell (folytatás)
Változók
| Valami | Szintax | Megjegyzés |
|---|---|---|
| Azonosító | $adat |
Változónevek elé mindig kell $, nem csak értékre hivatkozáskor |
| Értékadás | $változó = érték |
|
| Típus megadása | [típus]$változó = érték |
|
| Tartalom törlése | Clear-variable változó |
|
| Változó lista | Get-Variable |
|
| Tömbök | $tömb = 'egy','kettő','három' |
C-hez hasonló |
| Tömbök bővítése | $tömb = $tömb + $elem |
Példa:
$állatok = Get-Content .\állatok.txt
Get-Variable állatok # az `állatok` egy string tömb
$állatok = $állatok + "nyúl"
$szum = $args[0] + $args[1]
Write-Host Összeg: $szum
$szorzat = $args[0] * $args[1]
Write-Host Szorzat: $szorzat
Típusok
- string
- char
- byte
- int
- long
- bool
- single
- double
- DateTime
Típuskonverziók
<érték>.To<típus>()
Példák:
Matematikai műveletek
[math]- különböző matematikai segédfüggvények, konstansok
Pl.:
Szöveg műveletek
Split
"string".Split('mezőhatároló')[sorszám]
Példa:
# Elemekre bontja a ',' mentén
"egy,kettő,három".Split(',')
# Elemekre bontja a ',' mentén és a 0. elemet írja ki
"egy,kettő,három".Split(',')[0]
Substring
"string".Substring(mettől, hányDarab)
Példa:
# A 2. elemtől számolva vesz 3 db-ot
"egy,kettő,három,négy,öt,hat,hét,nyolc,kilenc,tíz".Substring(2, 3);
Replace
"string".Replace("régi", "új")
Példa:
PowerShell script
Kiterjesztés és futtatás
Kiterjesztés: .ps1
Fontos! Meg kell adni a futtatási jogot!
Script futtatási jog megadása:
- rendszergazdaként indítani
Set-ExecutionPolicy RemoteSigned
Futtatás:
- PowerShell ISE:
Runscriptvagy F5 billentyű - PowerShell:
.\<script> - DOS:
powershell \.<script>
Paraméterek
$args: összes paraméter (tömbben vannak a paraméterek)
Ebben CSAK a paraméterek vannak, a script neve nem.
$args[n]: n. paraméter
$args.Count vagy $args.length: paraméterek száma
$MyInvocation.Mycommand.Name: script neve
Kötelező paraméter
Stringer összefűzése
Kiíratás
Write-Output
Write-Host
Beolvasás
Read-Host
A billentyűzetről olvas be adatot
Értéke a beolvasott adat
-Prompt- Kérdés a beolvasás előtt
Hibaüzenetek kikapcsolása
"Globálisan":
Kifejezetten adott parancs esetén:
Csővezeték
Csővezeték enumerátor: $input
Elemszám: @($input).Count
Eredeti állapot helyreállítása: $input.Reset()
Példa: (lentebb)
Ciklusok
foreach
Lista vagy tömb bejárása
Példa:
for
Példa:
while
do-while
Elágazások
if
C szintax, de az elseif egyben van!
A feltételek Unix szerűen épülnek fel, pl: 3 -lt 4
Példa:
$szum = 0
if (@($input).Count -gt 0)
{
$input.Reset()
foreach($i in $input)
{
$szum += $i
}
}
else
{
foreach($i in $args)
{
$szum += $i
}
}
Write-Output $szum
$from = Read-Host -Prompt "Első"
$to = Read-Host -Prompt "Utolsó"
if($from -gt $to)
{
Write-Host "Hibás sorrend"
}
else
{
Write-Host "Helyes sorrend"
}
switch
Példa: