Utilizzo dell'istruzione in PowerShell

Utilizzo Dell Istruzione In Powershell



PowerShell è una robusta shell della riga di comando e un linguaggio di scripting utilizzato principalmente per controllare i sistemi informatici e automatizzare le attività amministrative. L'utilizzo delle istruzioni è uno dei fondamenti più cruciali di PowerShell. In particolare il “ utilizzando L'istruzione ” svolge un ruolo cruciale nella gestione delle risorse e nell'assicurare un'esecuzione efficiente del codice.

Questo articolo esplorerà vari aspetti dell'istruzione 'using' in PowerShell, inclusi la sintassi, lo scopo e le applicazioni pratiche.







Scopo della dichiarazione 'utilizzo'.

L'istruzione 'using' consente di specificare quali spazi dei nomi vengono utilizzati nella sessione. Aggiungendo spazi dei nomi, è possibile importare classi da assembly e moduli di script e semplificare l'uso di classi e membri .NET.



MUST della dichiarazione di 'utilizzo'.

  • L'istruzione 'using' deve comparire prima di qualsiasi altra istruzione dello script o del modulo. Non può essere preceduto da istruzioni non commentate, compresi i parametri.
  • Nessuna variabile deve essere presente nell'istruzione 'using'.
  • L'istruzione 'using' non deve essere confusa con il modificatore di ambito 'using:' per le variabili. Entrambi sono diversi nel loro scopo e significato.

Sintassi dell'istruzione 'using'.



La sintassi per l'istruzione 'using' è:





utilizzando lo spazio dei nomi < spazio dei nomi .NET >

Esaminiamo il seguente esempio:



utilizzando lo spazio dei nomi System.IO

$ byte = [ File ] :: Leggi tutti i byte ( 'D:\c sharp\Linuxhint1.txt' )
[ FileInfo ] ::nuovo ( 'D:\c sharp\Linuxhint1.txt' )

Nel codice sopra, abbiamo prima designato lo spazio dei nomi 'System.IO'. La seconda riga del programma, [File]::ReadAllBytes('D:c sharpLinuxhint1.txt'), legge ogni byte dal file fornito e lo inserisce nella variabile $Bytes. Nella terza riga, [FileInfo]::new('D:c sharpLinuxhint1.txt') crea una nuova istanza della classe FileInfo e restituisce l'oggetto FileInfo.

Istruzione 'using' per i moduli

Possiamo anche utilizzare l'istruzione 'using' per caricare le classi di un modulo.

Sintassi

utilizzando il modulo < nome-modulo >

In questa sintassi, il '', una specifica completa del modulo o il percorso di un file del modulo può essere utilizzato come valore per il 'nome del modulo'.

È possibile utilizzare un percorso completo o relativo quando 'nome-modulo>' è un percorso. Quando in uno script è presente un'istruzione 'using', in tale script viene risolto un percorso relativo.

PowerShell cerca il modulo fornito in PSModulePath quando '' è un nome o una specifica del modulo. Le seguenti chiavi costituiscono la tabella hash che è una specifica del modulo:

NomeModulo - Necessario. Denomina il modulo in questione.

GUID facoltativo – specifica il GUID del modulo.

Inoltre, è necessario specificare una delle tre chiavi elencate di seguito.

Versione modulo – Una versione minima consentita del modulo viene specificata tramite la proprietà 'ModuleVersion'.

Versione massima – Definisce la versione massima consentita del modulo.

Versione richiesta – Determina la versione esatta e necessaria del modulo utilizzando 'RequiredVersion'. Le altre chiavi di versione non possono essere utilizzate con questo.

Il modulo radice (ModuleToProcess) di un modulo binario o di un modulo di script viene importato dalla dichiarazione del modulo 'using'. Le classi specificate nei moduli nidificati o negli script che sono punto di origine nel modulo non vengono importate in modo affidabile. Tutte le classi che si desidera rendere disponibili agli utenti al di fuori del modulo devono essere specificate nel modulo root.

Ecco un esempio:

utilizzando il modulo PSReadline

Dichiarazione 'using' per l'assemblea

L'istruzione 'using' può essere utilizzata anche per precaricare i tipi da un assembly .NET.

Sintassi

utilizzando il montaggio < percorso-assembly .NET >

In questa sintassi, quando viene caricato un assembly, i tipi .NET di tale assembly vengono precaricati nello script prima che venga analizzato. Di conseguenza, è possibile sviluppare nuove classi PowerShell che utilizzano i tipi di assembly precaricati.

Guarda un esempio di applicazione dell'istruzione 'using' con un 'assembly':

utilizzando l'assembly System.Windows.Forms

In questo comando, abbiamo caricato l'assembly ' System.Windows.Forms” in PowerShell utilizzando l'istruzione 'using'.

Istruzione 'using' per chiavi hashtable

Tabelle hash ' sono strutture di dati adattabili utilizzate in PowerShell per una varietà di scopi, tra cui l'archiviazione dei dati di configurazione, la fornitura di argomenti ai cmdlet e l'archiviazione dei dati negli script.

L'hash crittografico per la stringa ' LinuxSuggerimento! ” si ottiene tramite il seguente script:

utilizzando lo spazio dei nomi System.Text
utilizzando lo spazio dei nomi System.IO [ corda ] $stringa = 'LinuxSuggerimento!'
[ corda ] $algoritmo = 'SHA1'

[ byte [ ] ] $stringabyte = [ Codifica Unicode ] ::Unicode.GetBytes ( $stringa )

[ Flusso ] $ flusso di memoria = [ MemoryStream ] ::nuovo ( $stringabyte )
$hashfromstream = Get-FileHash -InputStream $ flusso di memoria `
-Algoritmo $algoritmo
$hashfromstream .Hash.ToString ( )

Il codice PowerShell precedente inizia importando gli spazi dei nomi richiesti per le operazioni sui file e la codifica. La stringa di input e l'algoritmo di hashing (in questo caso ' SHA1 ”), vengono quindi definiti. La stringa di input viene quindi codificata utilizzando ' Unicode ” per creare un array di byte.

Il contenuto dell'array di byte viene quindi utilizzato per creare un ' flusso di memoria ”. Il valore hash dal flusso di memoria viene calcolato utilizzando l'algoritmo 'SHA1' fornito dal ' Get-FileHash cmdlet. Lo script termina stampando il valore hash ottenuto come stringa nell'output.

Produzione

Conclusione

IL ' utilizzando ” in PowerShell è un potente strumento per specificare spazi dei nomi, moduli o assembly. La sua sintassi e il suo scopo forniscono un approccio standardizzato e sicuro per la gestione delle risorse, facilitando il corretto smaltimento e riducendo la duplicazione del codice.