PowerShell on jõuline käsurea kest ja skriptikeel, mida kasutatakse enamasti arvutisüsteemide juhtimiseks ja haldustööde automatiseerimiseks. Avalduste kasutamine on üks olulisemaid PowerShelli põhialuseid. Eelkõige ' kasutades ” avaldus mängib ressursside haldamisel ja tõhusa koodi täitmise tagamisel üliolulist rolli.
See artikkel uurib PowerShelli „kasutamise” avalduse erinevaid aspekte, sealhulgas selle süntaksit, eesmärki ja praktilisi rakendusi.
Avalduse 'kasutamise' eesmärk
Avaldis 'using' võimaldab teil määrata, milliseid nimeruume seansil kasutatakse. Nimeruumide lisamisega saate importida klasse skriptimoodulitest ja koostudest ning lihtsustada .NET klasside ja liikmete kasutamist.
Avalduse 'kasutamise' tingimused
- Avaldus 'using' peab ilmuma enne mis tahes muid skripti või mooduli avaldusi. Sellele ei saa eelneda ühtegi kommenteerimata väidet, sealhulgas parameetreid.
- Avalduses 'using' ei tohi esineda muutujaid.
- Lauset „using” ei tohiks segi ajada muutujate ulatuse modifikaatoriga „using:”. Mõlemad erinevad oma eesmärgi ja tähenduse poolest.
'Kasutamise' avalduse süntaks
Lause „using” süntaks on:
kasutades nimeruumi < .NET-nimeruum >
Teeme ülevaate järgmisest näitest:
kasutades nimeruumi System.IO
$ baiti = [ Fail ] ::ReadAll Bytes ( 'D:\c sharp\Linuxhint1.txt' )
[ FileInfo ] ::uus ( 'D:\c sharp\Linuxhint1.txt' )
Ülaltoodud koodis määrasime esmalt nimeruumi 'System.IO'. Programmi teine rida [File]::ReadAllBytes('D:c sharpLinuxhint1.txt') loeb kaasasolevast failist iga baidi ja asetab need muutujasse $Bytes. Kolmandal real loob [FileInfo]::new('D:c sharpLinuxhint1.txt') FileInfo klassi uue eksemplari ja tagastab FileInfo objekti.
'kasutades' avaldust moodulite jaoks
Mooduli klasside laadimiseks saame kasutada ka käsku “using”.
Süntaks
moodulit kasutades < mooduli nimi >
Selles süntaksis saab 'mooduli nime' väärtusena kasutada '
Kui tee on 'mooduli nimi>', võite kasutada kas täielikult kvalifitseeritud või suhtelist teed. Kui skriptis on käsk 'kasutamine', lahendatakse selles skriptis suhteline tee.
PowerShell otsib PSModulePathist kaasasolevat moodulit, kui „
Mooduli nimi - Nõutud. Nimetab kõnealust moodulit.
Valikuline GUID – määrab mooduli GUID.
Lisaks peate määrama ühe kolmest allpool loetletud võtmest.
Mooduli versioon – Mooduli minimaalne lubatud versioon määratakse atribuudi „ModuleVersion” kaudu.
Maksimaalne versioon – Määrab mooduli kõrgeima lubatud versiooni.
Nõutav versioon – Määrab mooduli täpse, vajaliku versiooni, kasutades “RequiredVersion”. Sellega ei saa kasutada teisi versiooni võtmeid.
Binaarmooduli või skriptimooduli juurmoodul (ModuleToProcess) imporditakse mooduli 'kasutamise' deklaratsiooniga. Pesastatud moodulites või moodulisse punktallikaga skriptides määratud klasse ei impordita usaldusväärselt. Kõik klassid, mida soovite väljaspool moodulit kasutajatele kättesaadavaks teha, tuleb määrata juurmoodulis.
Siin on näide:
kasutades moodulit PSReadline
'kasutades' koostamise avaldust
Lauset 'using' saab kasutada ka tüüpide eellaadimiseks .NET-koostutest.
Süntaks
montaaži kasutades < .NET-assembly-path >
Selles süntaksis laaditakse koostu laadimisel selle koostu .NET-tüübid skripti enne selle sõelumist. Selle tulemusena on võimalik välja töötada värskeid PowerShelli klasse, mis kasutavad eellaaditud koostutüüpe.
Vaadake näidet lause „kasutamine” koos „koostu” rakendamisest:
kasutades montaaži System.Windows.Forms
Selle käsuga oleme laadinud komplekti ' System.Windows.Forms” PowerShellis, kasutades lauset 'using'.
Hashtable Keysi lause 'kasutamine'.
“ Räsi tabelid ” on kohandatavad andmestruktuurid, mida PowerShellis kasutatakse erinevatel eesmärkidel, sealhulgas konfiguratsiooniandmete salvestamiseks, cmdlet-käskudele argumentide esitamiseks ja andmete salvestamiseks skriptides.
Stringi krüptograafiline räsi ' LinuxHint! ” saadakse järgmise skripti kaudu:
kasutades nimeruumi System.Textkasutades nimeruumi System.IO [ string ] $string = 'LinuxHint!'
[ string ] $algoritm = 'SHA1'
[ bait [ ] ] $stringbaiti = [ UnicodeEncoding ] ::Unicode.GetBytes ( $string )
[ Voog ] $mäluvoog = [ MemoryStream ] ::uus ( $stringbaiti )
$hash voost = Get-FileHash -InputStream $mäluvoog `
- Algoritm $algoritm
$hash voost .Hash.ToString ( )
Ülaltoodud PowerShelli kood algab failitoiminguteks ja kodeerimiseks vajalike nimeruumide importimisega. Sisendstring ja räsimisalgoritm (antud juhul SHA1 ”), määratletakse seejärel. Seejärel kodeeritakse sisendstring, kasutades ' Unicode ', et luua baitide massiiv.
Seejärel kasutatakse baidimassiivi sisu ' mäluvoog ”. Mäluvoo räsiväärtus arvutatakse kaasasoleva 'SHA1' algoritmi abil ' Get-FileHash ” cmdlet. Skript lõpeb saadud räsiväärtuse trükkimisega stringina väljundisse.
Väljund
Järeldus
' kasutades ” lause PowerShellis on võimas tööriist nimeruumide, moodulite või koostude määramiseks. Selle süntaks ja eesmärk pakuvad standardiseeritud ja ohutut lähenemisviisi ressursside käitlemiseks, hõlbustades nõuetekohast kõrvaldamist ja vähendades koodi dubleerimist.