Powershell versioon 3: Difference between revisions
No edit summary |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 20: | Line 20: | ||
Nagu ikka tavaks, tuleb ka skriptimises aegajalt kasutada erinevate andmekogumite läbikäimist. Näiteks tuleb iga failiga kaustas midagi teha. | Nagu ikka tavaks, tuleb ka skriptimises aegajalt kasutada erinevate andmekogumite läbikäimist. Näiteks tuleb iga failiga kaustas midagi teha. | ||
Versioon kolmes on oluliselt mugavamaks tehtud objektide ja liikmete läbikäimist skriptides. | Versioon kolmes on oluliselt mugavamaks tehtud objektide ja liikmete läbikäimist skriptides. | ||
Kui enne tuli kasutada algajatele suhteliselt raskelt mõistetavat $_. kontruktsiooni, siis uues versioonis on see oluliselt lihtsam. Näiteks: | Kui enne tuli kasutada algajatele suhteliselt raskelt mõistetavat $_. kontruktsiooni, siis uues versioonis on see oluliselt lihtsam. Näiteks: (allikas 1 ja 3) | ||
Vanas versioonis tuli kaustas olevate objektide täis PATH-i teadasaamiseks kirjutada: | Vanas versioonis tuli kaustas olevate objektide täis PATH-i teadasaamiseks kirjutada: | ||
dir | % { $_.FullName } | |||
Siis uues versioonis saab seda teha oluliselt mugavamalt: | Siis uues versioonis saab seda teha oluliselt mugavamalt: | ||
(dir).FullName | |||
==Kaughalduse sessioonidele muutujate edastamine== | ==Kaughalduse sessioonidele muutujate edastamine== | ||
On skripte, mis tegelevad kaugel asuvate arvutitega, ning aegajalt tuleb nednele arvutitele edastada mõni väärtus, mis on defineeritud muutujaga. | On skripte, mis tegelevad kaugel asuvate arvutitega, ning aegajalt tuleb nednele arvutitele edastada mõni väärtus, mis on defineeritud muutujaga. | ||
Kui vanas versioonis taheti mõni muutuja edastada läbi kaughalduse, siis tuli kasutada näiteks sellist lahendust: | Kui vanas versioonis taheti mõni muutuja edastada läbi kaughalduse, siis tuli kasutada näiteks sellist lahendust: (allikas 1 ja 2) | ||
$localVar = 42 | |||
Invoke-Command -cn srv123 { param($localVar) echo $localVar } –ArgumentList $localVar | |||
42 | 42 | ||
Siis uues versioonis on see jälle mugavamaks tehtud: | Siis uues versioonis on see jälle mugavamaks tehtud: | ||
$localVar = 42 | |||
Invoke-Command –cn srv123 { echo $using:localVar } | |||
42 | 42 | ||
==PSItem== | ==PSItem== | ||
Et oleks kergem aru saada, kuidas objekte läbi käiakse, võeti kasutusele $PSItem muutuja, see asendab endist $_ muutujat. See teeb elu lihtsamaks, sest osadele inimestele tundus $_ maagilise asjana, millest oli raske aru saada. Nüüd võib selle asemel igal pool kirjutada $PSItem. | Et oleks kergem aru saada, kuidas objekte läbi käiakse, võeti kasutusele $PSItem muutuja, see asendab endist $_ muutujat. See teeb elu lihtsamaks, sest osadele inimestele tundus $_ maagilise asjana, millest oli raske aru saada. Nüüd võib selle asemel igal pool kirjutada $PSItem. (allikas 1 ja 2) | ||
==Argumendid ei vaja enam = $true== | ==Argumendid ei vaja enam = $true== | ||
Kui vanas versioonis tuli parameetritele alati väärtus taha kirjutada, siis uues versioonis, tehakse seda tõese väärtuse korral automaatselt. | Kui vanas versioonis tuli parameetritele alati väärtus taha kirjutada, siis uues versioonis, tehakse seda tõese väärtuse korral automaatselt. (allikas 3) | ||
Vanas versioonis kirjutatakse: | Vanas versioonis kirjutatakse: | ||
param([Parameter(Mandatory=$true)]$p) | |||
Uues versioonis võib aga kirjtuada: | Uues versioonis võib aga kirjtuada: | ||
param([Parameter(Mandatory)]$p) | |||
Kui jätta $true argumendilt ära, siis see | Kui jätta $true argumendilt ära, siis see eeldatakse sinna automaatselt. | ||
==Uued operaatorid== | ==Uued operaatorid== | ||
Uues versioonis lisandusid mõned uued operaatorid: | Uues versioonis lisandusid mõned uued operaatorid:(allikas 1) | ||
-shl nihuta bitte vasakule | |||
-shr nihuta bitte paremale – säilitab märgiga väärtuste märgi. | #-shl nihuta bitte vasakule | ||
-in nagu –contains, aga operandide järjekord on vastupidine | #-shr nihuta bitte paremale – säilitab märgiga väärtuste märgi. | ||
-notin nagu –notcontains, aga operandide järjekord on vastupidine | #-in nagu –contains, aga operandide järjekord on vastupidine | ||
#-notin nagu –notcontains, aga operandide järjekord on vastupidine | |||
==ForEach ei käi enam üle $null-i== | |||
Kui vanas versioonis juhtus nii, et: (allikas 1) | |||
foreach ($i in $null) { 'got here' } | |||
got here | got here | ||
Line 67: | Line 71: | ||
==Uuendatud Help süsteem== | ==Uuendatud Help süsteem== | ||
Minu meelest üks kõige ägedamaid uuendusi üldse. Nüüd saab kõik online helpi enda arvutisse alla tõmmata. Ja seda vajadusel uuendada. Selleks tuleb käima lasta Update-Help käsk. TÄHELEPANU, selleks, et abifaile interenetist alla laadida, tuleb PowerShelli aken käima lasta administraatori õigustes. Ning lisaks annab abiinfot eraldi aknas panna kuvama, kust saab seda väga mugavalt kopeerida ja otsida. Akna kuvamiseks tuleb kasutada -ShowWindow võtit nii: | Minu meelest üks kõige ägedamaid uuendusi üldse. Nüüd saab kõik online helpi enda arvutisse alla tõmmata. Ja seda vajadusel uuendada. Selleks tuleb käima lasta Update-Help käsk. TÄHELEPANU, selleks, et abifaile interenetist alla laadida, tuleb PowerShelli aken käima lasta administraatori õigustes. Ning lisaks annab abiinfot eraldi aknas panna kuvama, kust saab seda väga mugavalt kopeerida ja otsida. Akna kuvamiseks tuleb kasutada -ShowWindow võtit nii: (allikas 4) | ||
Get-Help Get-Member -ShowWindow | Get-Help Get-Member -ShowWindow | ||
= Kokkuvõte = | = Kokkuvõte = | ||
Kokkuvõtteks võib öelda, et PowerShell V3 on endaga kaasa toonud mõned väga mugavad muudatused, mis teevad selles skriptimise mugavamaks ja kergemini õpitavaks. Loodan, et Microsoft võtab | Kokkuvõtteks võib öelda, et PowerShell V3 on endaga kaasa toonud mõned väga mugavad muudatused, mis teevad selles skriptimise mugavamaks ja kergemini õpitavaks. Loodan, et Microsoft võtab PowerShelli arendamist täie tõsidusega, ning järgmised versioonid annavad meile veelgi parema ja mugavama tööriista, millega enda ja teiste elu hõlbustada. Enda töös andsin kiire ülevaate mõnedest muudatustest, mida tõi endaga kaasa PowerShelli kolmas versioon. Ei tahagi väita, et see on ammendav allikas. Kasutatud kirjanduse nimekirjast leiab linke, kust saab lugeda lisaks. | ||
Line 79: | Line 83: | ||
#[http://blogs.msdn.com/b/powershell/archive/2012/06/14/new-v3-language-features.aspx MSDN Blog] | #[http://blogs.msdn.com/b/powershell/archive/2012/06/14/new-v3-language-features.aspx MSDN Blog] | ||
#[http://technet.microsoft.com/en-us/library/hh857339.aspx What's New in Windows PowerShell] | #[http://technet.microsoft.com/en-us/library/hh857339.aspx What's New in Windows PowerShell] | ||
#[http://www.microsoftvirtualacademy.com/training-courses/getting-started-with-powershell-3-0-jump-start#?fbid=v7-71xzcdpg Getting Started with PowerShell 3.0 Jump Start] | |||
#PowerShell-i enda abifailid. | #PowerShell-i enda abifailid. | ||
Latest revision as of 17:31, 3 January 2014
Sissejuhatus
Töö eesmärk on tutvustada Windows PowerShell V3-e ja selle uusi võimalusi.
Eeldused
Sellest dokumendist saab abi inimene, kes juba teab PowerShelli, kui ka teiste skriptimiskeelte algtõdesid. Siin väljatoodud käsud töötavad ka tavakasutaja õigustes, väljaarvatud, üks erand, millest on allpool juttu.
Autor
- Gert Kosenkranius
- Grupp AK21
Ülevaade
Mis on Windows PowerShell V3?
Windows PowerShell V3 on Windowsi operatsioonisüsteemi sisse ehitatud skriptimiskeel, mis aitab õigetes kätes oluliselt lihtsustada administraatori elu. Sellega annab kirjutada skripte, mis muudavad korduva ja tülika töö lihtsaks ja autmoatiseerituks. Nüüdseks on välja tulnud juba kolmas versioon, mis on endaga kaasa toonud uuendused, milledest mõnedest annangi ülevaate.
Uuendused
Liikmete läbikäimine
Nagu ikka tavaks, tuleb ka skriptimises aegajalt kasutada erinevate andmekogumite läbikäimist. Näiteks tuleb iga failiga kaustas midagi teha. Versioon kolmes on oluliselt mugavamaks tehtud objektide ja liikmete läbikäimist skriptides. Kui enne tuli kasutada algajatele suhteliselt raskelt mõistetavat $_. kontruktsiooni, siis uues versioonis on see oluliselt lihtsam. Näiteks: (allikas 1 ja 3)
Vanas versioonis tuli kaustas olevate objektide täis PATH-i teadasaamiseks kirjutada:
dir | % { $_.FullName }
Siis uues versioonis saab seda teha oluliselt mugavamalt:
(dir).FullName
Kaughalduse sessioonidele muutujate edastamine
On skripte, mis tegelevad kaugel asuvate arvutitega, ning aegajalt tuleb nednele arvutitele edastada mõni väärtus, mis on defineeritud muutujaga. Kui vanas versioonis taheti mõni muutuja edastada läbi kaughalduse, siis tuli kasutada näiteks sellist lahendust: (allikas 1 ja 2)
$localVar = 42 Invoke-Command -cn srv123 { param($localVar) echo $localVar } –ArgumentList $localVar
42
Siis uues versioonis on see jälle mugavamaks tehtud:
$localVar = 42 Invoke-Command –cn srv123 { echo $using:localVar }
42
PSItem
Et oleks kergem aru saada, kuidas objekte läbi käiakse, võeti kasutusele $PSItem muutuja, see asendab endist $_ muutujat. See teeb elu lihtsamaks, sest osadele inimestele tundus $_ maagilise asjana, millest oli raske aru saada. Nüüd võib selle asemel igal pool kirjutada $PSItem. (allikas 1 ja 2)
Argumendid ei vaja enam = $true
Kui vanas versioonis tuli parameetritele alati väärtus taha kirjutada, siis uues versioonis, tehakse seda tõese väärtuse korral automaatselt. (allikas 3)
Vanas versioonis kirjutatakse:
param([Parameter(Mandatory=$true)]$p)
Uues versioonis võib aga kirjtuada:
param([Parameter(Mandatory)]$p)
Kui jätta $true argumendilt ära, siis see eeldatakse sinna automaatselt.
Uued operaatorid
Uues versioonis lisandusid mõned uued operaatorid:(allikas 1)
- -shl nihuta bitte vasakule
- -shr nihuta bitte paremale – säilitab märgiga väärtuste märgi.
- -in nagu –contains, aga operandide järjekord on vastupidine
- -notin nagu –notcontains, aga operandide järjekord on vastupidine
ForEach ei käi enam üle $null-i
Kui vanas versioonis juhtus nii, et: (allikas 1)
foreach ($i in $null) { 'got here' }
got here
Siis uues versioonis ei tule enam igaks juhuks if lauseid lisada, et seda vältida.
Uuendatud Help süsteem
Minu meelest üks kõige ägedamaid uuendusi üldse. Nüüd saab kõik online helpi enda arvutisse alla tõmmata. Ja seda vajadusel uuendada. Selleks tuleb käima lasta Update-Help käsk. TÄHELEPANU, selleks, et abifaile interenetist alla laadida, tuleb PowerShelli aken käima lasta administraatori õigustes. Ning lisaks annab abiinfot eraldi aknas panna kuvama, kust saab seda väga mugavalt kopeerida ja otsida. Akna kuvamiseks tuleb kasutada -ShowWindow võtit nii: (allikas 4)
Get-Help Get-Member -ShowWindow
Kokkuvõte
Kokkuvõtteks võib öelda, et PowerShell V3 on endaga kaasa toonud mõned väga mugavad muudatused, mis teevad selles skriptimise mugavamaks ja kergemini õpitavaks. Loodan, et Microsoft võtab PowerShelli arendamist täie tõsidusega, ning järgmised versioonid annavad meile veelgi parema ja mugavama tööriista, millega enda ja teiste elu hõlbustada. Enda töös andsin kiire ülevaate mõnedest muudatustest, mida tõi endaga kaasa PowerShelli kolmas versioon. Ei tahagi väita, et see on ammendav allikas. Kasutatud kirjanduse nimekirjast leiab linke, kust saab lugeda lisaks.
Kasutatud kirjandus
- MSDN Blog
- What's New in Windows PowerShell
- Getting Started with PowerShell 3.0 Jump Start
- PowerShell-i enda abifailid.
Gert Kosenkranius AK21-2013