PowerShell er et robust kommandolinjeskall og skriptspråk som for det meste brukes til å kontrollere datasystemer og automatisere administrative oppgaver. Bruken av utsagn er en av de mest avgjørende PowerShell-grunnlagene. Spesielt ' ved hjelp av ” uttalelse spiller en avgjørende rolle i å administrere ressurser og sikre effektiv kodeutførelse.
Denne artikkelen vil utforske ulike aspekter av 'bruker'-setningen i PowerShell, inkludert syntaks, formål og praktiske applikasjoner.
Formålet med 'bruke'-erklæringen
'using'-setningen lar deg spesifisere hvilke navneområder som brukes i økten. Ved å legge til navneområder kan du importere klasser fra skriptmoduler og sammenstillinger og forenkle bruken av .NET-klasser og -medlemmer.
MUST for å 'bruke' erklæring
- 'Using'-setningen må vises før alle andre script- eller modulsetninger. Det kan ikke innledes med ukommenterte utsagn, inkludert parametere.
- Eventuelle variabler må ikke være til stede i 'bruker'-setningen.
- 'using'-setningen må ikke forveksles med 'using:' omfangsmodifikator for variabler. De er begge forskjellige i sin hensikt og betydning.
Syntaks for 'bruker'-erklæringen
Syntaksen for 'bruker'-setningen er:
ved hjelp av navneområde < .NET-navneområde >
La oss se på følgende eksempel:
bruker navneområdet System.IO
$Bytes = [ Fil ] ::ReadAllBytes ( 'D:\c sharp\Linuxhint1.txt' )
[ FileInfo ] ::ny ( 'D:\c sharp\Linuxhint1.txt' )
I koden ovenfor utpekte vi først navneområdet 'System.IO'. Den andre linjen i programmet, [File]::ReadAllBytes(‘D:c sharpLinuxhint1.txt’), leser hver byte fra den medfølgende filen og plasserer dem i $Bytes-variabelen. I den tredje linjen oppretter [FileInfo]::new(‘D:c sharpLinuxhint1.txt’) en ny forekomst av FileInfo-klassen og returnerer FileInfo-objektet.
'bruker' erklæring for moduler
Vi kan også bruke 'bruker'-setningen for å laste klasser til en modul.
Syntaks
bruker modulen < modulnavn >
I denne syntaksen kan '
Du kan bruke enten en fullt kvalifisert eller relativ bane når 'modulnavn>' er en bane. Når en 'bruker'-setning er til stede i et skript, blir en relativ bane løst i det skriptet.
PowerShell ser etter den medfølgende modulen i PSModulePath når '
Modulnavn – Påkrevd. Navngir den aktuelle modulen.
Valgfri GUID – spesifiserer modulens GUID.
I tillegg må du spesifisere en av de tre nøklene som er oppført nedenfor.
Modulversjon – En minimum tillatt versjon av modulen er spesifisert via egenskapen 'ModuleVersion'.
MaximumVersion – Definerer modulens høyeste tillatte versjon.
Påkrevd versjon – Bestemmer den nøyaktige, nødvendige versjonen av modulen ved å bruke 'RequiredVersion'. De andre versjonsnøklene kan ikke brukes med denne.
Rotmodulen (ModuleToProcess) til en binær modul eller skriptmodul importeres av 'bruker' modulerklæringen. Klassene som er spesifisert i nestede moduler eller skript som er dot-sourced inn i modulen, importeres ikke pålitelig. Eventuelle klasser som du ønsker skal være tilgjengelige for brukere utenfor modulen bør spesifiseres i rotmodulen.
Her er et eksempel:
ved hjelp av modulen PSReadline
'bruker' erklæring for montering
'using'-setningen kan også brukes til å forhåndsinnlaste typer fra en .NET-montering.
Syntaks
ved hjelp av montering < .NET-monteringsbane >
I denne syntaksen, når en sammenstilling er lastet, blir .NET-typene fra den sammenstillingen forhåndslastet inn i skriptet før den analyseres. Som et resultat er det mulig å utvikle ferske PowerShell-klasser som benytter seg av de forhåndslastede monteringstypene.
Se på et eksempel på bruk av 'bruker'-setningen med en 'sammenstilling':
ved hjelp av montering System.Windows.Forms
I denne kommandoen har vi lastet inn sammenstillingen ' System.Windows.Forms” i PowerShell ved å bruke 'using'-setningen.
'bruker' uttalelse for hashable nøkler
' Hash-tabeller ” er tilpasningsdyktige datastrukturer som brukes i PowerShell for en rekke formål, inkludert lagring av konfigurasjonsdata, gi argumenter til cmdlets og lagring av data i skript.
Den kryptografiske hashen for strengen ' LinuxHint! ' er hentet via følgende skript:
bruker navneområdet System.Textbruker navneområdet System.IO [ streng ] $string = 'LinuxHint!'
[ streng ] $algoritme = 'SHA1'
[ byte [ ] ] $stringbytes = [ UnicodeEncoding ] :: Unicode.GetBytes ( $string )
[ Strøm ] $minnestrøm = [ MemoryStream ] ::ny ( $stringbytes )
$hashfromstream = Get-FileHash -InputStream $minnestrøm `
- Algoritme $algoritme
$hashfromstream .Hash.ToString ( )
PowerShell-koden ovenfor begynner med å importere navneområdene som kreves for filoperasjoner og koding. Inndatastrengen og hashing-algoritmen (i dette tilfellet ' SHA1 ”), blir deretter definert. Inndatastrengen blir deretter kodet med ' Unicode ' for å lage en rekke byte.
Innholdet i byte-matrisen brukes deretter til å bygge en ' minnestrøm '. Hash-verdien fra minnestrømmen beregnes ved å bruke den medfølgende 'SHA1'-algoritmen av ' Get-FileHash ' cmdlet. Skriptet avsluttes med å skrive ut den oppnådde hash-verdien som en streng til utdataene.
Produksjon
Konklusjon
« ved hjelp av ”-setning i PowerShell er et kraftig verktøy for å spesifisere navneområder, moduler eller sammenstillinger. Dens syntaks og formål gir en standardisert og sikker tilnærming for håndtering av ressurser, tilrettelegging for riktig avhending og reduksjon av kodeduplisering.