Använder Statement i PowerShell

Anvander Statement I Powershell



PowerShell är ett robust kommandoradsskal och skriptspråk som oftast används för att kontrollera datorsystem och automatisera administrativa sysslor. Användningen av uttalanden är en av de mest avgörande PowerShell-grunderna. I synnerhet ' använder sig av ” uttalande spelar en avgörande roll för att hantera resurser och säkerställa effektiv kodexekvering.

Den här artikeln kommer att utforska olika aspekter av 'användning'-satsen i PowerShell, inklusive dess syntax, syfte och praktiska tillämpningar.







Syftet med att 'använda' uttalande

Med 'using'-satsen kan du specificera vilka namnutrymmen som används i sessionen. Genom att lägga till namnutrymmen kan du importera klasser från skriptmoduler och sammansättningar och förenkla användningen av .NET-klasser och -medlemmar.



MÅSTE för att 'använda' uttalande

  • 'using'-satsen måste visas före alla andra skript- eller modulsatser. Den kan inte föregås av några okommenterade uttalanden, inklusive parametrar.
  • Eventuella variabler får inte finnas i 'using'-satsen.
  • 'using'-satsen ska inte förväxlas med 'using:'-omfångsmodifieraren för variabler. De båda är olika i sitt syfte och innebörd.

Syntax för 'använder'-satsen



Syntaxen för 'using'-satsen är:





använder namnutrymme < .NET-namnutrymme >

Låt oss överblicka följande exempel:



använder namnrymden System.IO

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

I koden ovan angav vi först namnområdet 'System.IO'. Den andra raden i programmet, [File]::ReadAllBytes(‘D:c sharpLinuxhint1.txt’), läser varje byte från den medföljande filen och placerar dem i variabeln $Bytes. På den tredje raden skapar [FileInfo]::new(‘D:c sharpLinuxhint1.txt’) en ny instans av klassen FileInfo och returnerar FileInfo-objektet.

'använder' uttalande för moduler

Vi kan också använda 'using'-satsen för att ladda klasser för en modul.

Syntax

använder modulen < modulnamn >

I denna syntax kan '', en komplett modulspecifikation eller en sökväg till en modulfil användas som värde för 'modulnamn'.

Du kan använda antingen en fullständigt kvalificerad eller relativ sökväg när 'modulnamn>' är en sökväg. När en 'användning'-sats finns i ett skript, löses en relativ sökväg i det skriptet.

PowerShell letar efter den medföljande modulen i PSModulePath när '' är ett namn eller modulspecifikation. Följande nycklar utgör hashtabellen som är en modulspecifikation:

Modulnamn – Krävs. Namnger modulen i fråga.

Valfri GUID – anger modulens GUID.

Dessutom måste du ange en av de tre nycklar som anges nedan.

Modulversion – En minsta tillåtna version av modulen anges via egenskapen 'ModuleVersion'.

MaximumVersion – Definierar modulens högsta tillåtna version.

RequiredVersion – Bestämmer den exakta, nödvändiga versionen av modulen med hjälp av 'RequiredVersion'. De andra versionsnycklarna kan inte användas med detta.

Rotmodulen (ModuleToProcess) för en binär modul eller skriptmodul importeras av 'using'-moduldeklarationen. Klasserna som anges i kapslade moduler eller skript som är dot-sourced i modulen importeras inte tillförlitligt. Alla klasser som du vill ska vara tillgängliga för användare utanför modulen bör anges i rotmodulen.

Här är ett exempel:

använder modulen PSReadline

'använder' uttalande för montering

'using'-satsen kan också användas för att förladda typer från en .NET-sammansättning.

Syntax

med hjälp av montering < .NET-assembly-sökväg >

I den här syntaxen, när en sammansättning läses in, förladdas .NET-typerna från den sammansättningen i skriptet innan det tolkas. Som ett resultat är det möjligt att utveckla nya PowerShell-klasser som använder sig av de förladdade assemblytyperna.

Titta på ett exempel på hur man tillämpar 'using'-satsen med en 'assembly':

med hjälp av assembly System.Windows.Forms

I det här kommandot har vi laddat församlingen ' System.Windows.Forms” i PowerShell med hjälp av 'using'-satsen.

'använder' uttalande för Hashtable Keys

' Hash tabeller ” är anpassningsbara datastrukturer som används i PowerShell för en mängd olika ändamål, inklusive lagring av konfigurationsdata, tillhandahållande av argument till cmdlets och lagring av data i skript.

Den kryptografiska hashen för strängen ' LinuxTips! ” erhålls via följande skript:

använder namnrymden System.Text
använder namnrymden System.IO [ sträng ] $string = 'LinuxHint!'
[ sträng ] $algoritm = 'SHA1'

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

[ Ström ] $minnesström = [ MemoryStream ] ::ny ( $stringbytes )
$hashfromstream = Get-FileHash -InputStream $minnesström `
-Algoritm $algoritm
$hashfromstream .Hash.ToString ( )

Ovanstående PowerShell-kod börjar med att importera de namnutrymmen som krävs för filoperationer och kodning. Inmatningssträngen och hashalgoritmen (i det här fallet ' SHA1 ”), definieras sedan. Inmatningssträngen kodas sedan med ' Unicode ” för att skapa en array av byte.

Innehållet i byte-arrayen används sedan för att bygga en ' minnesström ”. Hashvärdet från minnesströmmen beräknas med hjälp av den tillhandahållna 'SHA1'-algoritmen av ' Get-FileHash ' cmdlet. Skriptet avslutas med att skriva ut det erhållna hashvärdet som en sträng till utdata.

Produktion

Slutsats

den ' använder sig av ”-sats i PowerShell är ett kraftfullt verktyg för att specificera namnutrymmen, moduler eller sammanställningar. Dess syntax och syfte ger ett standardiserat och säkert tillvägagångssätt för att hantera resurser, underlätta korrekt kassering och minska kodduplicering.