Brug af Statement i PowerShell

Brug Af Statement I Powershell



PowerShell er en robust kommandolinje-shell og scriptsprog, der mest bruges til at styre computersystemer og automatisere administrative opgaver. Brugen af ​​udsagn er et af de mest afgørende PowerShell-grundlag. Især ' ved brug af ”-erklæring spiller en afgørende rolle i styring af ressourcer og sikring af effektiv kodeeksekvering.

Denne artikel vil udforske forskellige aspekter af 'bruger'-sætningen i PowerShell, herunder dens syntaks, formål og praktiske anvendelser.







Formål med at 'bruge' erklæring

'Using'-sætningen lader dig specificere, hvilke navnerum der bruges i sessionen. Ved at tilføje navnerum kan du importere klasser fra scriptmoduler og forsamlinger og forenkle brugen af ​​.NET-klasser og -medlemmer.



MUST for at 'bruge' erklæring

  • Udsagnet 'bruger' skal vises før alle andre script- eller moduludsagn. Det kan ikke indledes med ukommenterede udsagn, inklusive parametre.
  • Eventuelle variabler må ikke være til stede i 'bruger'-sætningen.
  • 'using'-sætningen må ikke forveksles med 'using:'-omfangsmodifikatoren for variabler. De er begge forskellige i deres formål og betydning.

Syntaks for 'bruger'-erklæringen



Syntaksen for 'bruger'-sætningen er:





ved hjælp af navneområde < .NET-navneområde >

Lad os gennemgå følgende eksempel:



bruger navneområdet System.IO

$Bytes = [ Fil ] ::ReadAllBytes ( 'D:\c sharp\Linuxhint1.txt' )
[ FileInfo ] ::ny ( 'D:\c sharp\Linuxhint1.txt' )

I koden ovenfor udpegede vi først navneområdet 'System.IO'. Den anden linje i programmet, [File]::ReadAllBytes('D:c sharpLinuxhint1.txt'), læser hver byte fra den medfølgende fil og placerer dem i $Bytes-variablen. I den tredje linje opretter [FileInfo]::new(‘D:c sharpLinuxhint1.txt’) en ny forekomst af FileInfo-klassen og returnerer FileInfo-objektet.

'bruger' erklæring for moduler

Vi kan også bruge 'using'-sætningen til at indlæse klasser af et modul.

Syntaks

ved hjælp af modul < modulnavn >

I denne syntaks kan '', en komplet modulspecifikation eller en sti til en modulfil bruges som værdien for 'modulnavn'.

Du kan bruge enten en fuldt kvalificeret eller relativ sti, når 'modulnavn>' er en sti. Når en 'bruger'-sætning er til stede i et script, løses en relativ sti i det script.

PowerShell leder efter det medfølgende modul i PSModulePath, når '' er et navn eller modulspecifikation. Følgende nøgler udgør hashtabellen, der er en modulspecifikation:

Modulnavn – Påkrævet. Navngiver det pågældende modul.

Valgfri GUID – angiver modulets GUID.

Derudover skal du angive en af ​​de tre nøgler, der er angivet nedenfor.

Modulversion – En minimum tilladt version af modulet er angivet via egenskaben 'ModuleVersion'.

MaximumVersion – Definerer modulets højest tilladte version.

Påkrævet version – Bestemmer den præcise, nødvendige version af modulet ved hjælp af 'RequiredVersion'. De andre versionsnøgler kan ikke bruges med dette.

Rodmodulet (ModuleToProcess) af et binært modul eller script-modul importeres af 'bruger' modul-deklarationen. De klasser, der er angivet i indlejrede moduler eller scripts, der er dot-sourced i modulet, importeres ikke pålideligt. Alle klasser, som du ønsker skal være tilgængelige for brugere uden for modulet, skal angives i rodmodulet.

Her er et eksempel:

ved hjælp af modulet PSReadline

'bruger' erklæring til samling

'using'-sætningen kan også bruges til at forudindlæse typer fra en .NET-assembly.

Syntaks

ved hjælp af montage < .NET-samlingssti >

I denne syntaks, når en assembly indlæses, bliver .NET-typerne fra den assembly forudindlæst i scriptet, før det parses. Som et resultat er det muligt at udvikle nye PowerShell-klasser, der gør brug af de forudindlæste assembly-typer.

Se på et eksempel på anvendelse af 'bruger'-sætningen med en 'samling':

ved hjælp af assembly System.Windows.Forms

I denne kommando har vi indlæst samlingen ' System.Windows.Forms” i PowerShell ved hjælp af 'using'-sætningen.

'bruger' erklæring for hashable nøgler

Hash tabeller ” er tilpasningsdygtige datastrukturer, der bruges i PowerShell til en række forskellige formål, herunder lagring af konfigurationsdata, levering af argumenter til cmdlets og lagring af data i scripts.

Den kryptografiske hash for strengen ' LinuxTip! ” fås via følgende script:

ved hjælp af navneområde System.Text
bruger navneområdet System.IO [ snor ] $streng = 'LinuxHint!'
[ snor ] $algoritme = 'SHA1'

[ byte [ ] ] $stringbytes = [ UnicodeEncoding ] :: Unicode.GetBytes ( $streng )

[ Strøm ] $memorystream = [ MemoryStream ] ::ny ( $stringbytes )
$hashfromstream = Get-FileHash -InputStream $memorystream `
- Algoritme $algoritme
$hashfromstream .Hash.ToString ( )

Ovenstående PowerShell-kode begynder med at importere de navneområder, der kræves til filoperationer og kodning. Inputstrengen og hashing-algoritmen (i dette tilfælde ' SHA1 ”), defineres derefter. Indtastningsstrengen kodes derefter ved hjælp af ' Unicode ” for at oprette en række bytes.

Indholdet af byte-arrayet bruges derefter til at bygge en ' hukommelsesstrøm ”. Hashværdien fra hukommelsesstrømmen beregnes ved hjælp af den medfølgende 'SHA1'-algoritme af ' Hent-FileHash ' cmdlet. Scriptet slutter med at udskrive den opnåede hashværdi som en streng til outputtet.

Produktion

Konklusion

Det ' ved brug af ”-sætning i PowerShell er et kraftfuldt værktøj til at specificere navnerum, moduler eller samlinger. Dens syntaks og formål giver en standardiseret og sikker tilgang til håndtering af ressourcer, facilitering af korrekt bortskaffelse og reduktion af kodeduplikering.