Usando declaração no PowerShell

Usando Declaracao No Powershell



O PowerShell é um shell de linha de comando robusto e uma linguagem de script usada principalmente para controlar sistemas de computador e automatizar tarefas administrativas. O uso de instruções é um dos fundamentos mais cruciais do PowerShell. Em particular, o “ usando ” desempenha um papel crucial no gerenciamento de recursos e na garantia da execução eficiente do código.

Este artigo explorará vários aspectos da instrução “usando” no PowerShell, incluindo sua sintaxe, finalidade e aplicações práticas.







Finalidade da Declaração de “usar”

A instrução “using” permite especificar quais namespaces são utilizados na sessão. Ao adicionar namespaces, você pode importar classes de módulos de script e assemblies e simplificar o uso de classes e membros .NET.



OBRIGAÇÕES da Declaração de “usar”

  • A instrução “using” deve aparecer antes de qualquer outro script ou instrução de módulo. Não pode ser precedido por nenhuma instrução não comentada, incluindo parâmetros.
  • Quaisquer variáveis ​​não devem estar presentes na instrução “using”.
  • A instrução “using” não deve ser confundida com o modificador de escopo “using:” para variáveis. Ambos são diferentes em seu propósito e significado.

Sintaxe da instrução 'usando'



A sintaxe para a instrução “using” é:





usando namespace < .NET-namespace >

Vamos analisar o seguinte exemplo:



usando o namespace System.IO

$Bytes = [ Arquivo ] ::ReadAllBytes ( 'D:\c sharp\Linuxhint1.txt' )
[ Informações do arquivo ] ::novo ( 'D:\c sharp\Linuxhint1.txt' )

No código acima, primeiro designamos o namespace “System.IO”. A segunda linha do programa, [File]::ReadAllBytes(‘D:c sharpLinuxhint1.txt’), lê cada byte do arquivo fornecido e os coloca na variável $Bytes. Na terceira linha, [FileInfo]::new(‘D:c sharpLinuxhint1.txt’) cria uma nova instância da classe FileInfo e retorna o objeto FileInfo.

Instrução “usando” para módulos

Também podemos utilizar a instrução “using” para carregar as classes de um módulo.

Sintaxe

usando módulo < nome do módulo >

Nesta sintaxe, o “”, uma especificação de módulo completa ou um caminho para um arquivo de módulo pode ser usado como valor para “nome do módulo”.

Você pode usar um caminho totalmente qualificado ou relativo quando “module-name>” for um caminho. Quando uma instrução “usando” está presente em um script, um caminho relativo é resolvido nesse script.

O PowerShell procura o módulo fornecido no PSModulePath quando “” é um nome ou especificação de módulo. As seguintes chaves compõem o hashtable que é uma especificação do módulo:

Nome do módulo - Obrigatório. Nomeia o módulo em questão.

GUID opcional – especifica o GUID do módulo.

Além disso, você deve especificar uma das três chaves listadas abaixo.

ModuleVersion – Uma versão mínima permitida do módulo é especificada por meio da propriedade “ModuleVersion”.

MaximumVersion – Define a versão mais alta permitida do módulo.

Versão Requerida – Determina a versão precisa e necessária do módulo usando “RequiredVersion”. As outras chaves de versão não podem ser usadas com isso.

O módulo raiz (ModuleToProcess) de um módulo binário ou módulo de script é importado pela declaração de módulo “usando”. As classes especificadas em módulos ou scripts aninhados que são originados por ponto no módulo não são importados de forma confiável. Quaisquer classes que você deseja disponibilizar para usuários fora do módulo devem ser especificadas no módulo raiz.

Aqui está um exemplo:

usando o módulo PSReadline

Declaração “usando” para Assembleia

A instrução “using” também pode ser usada para pré-carregar tipos de um assembly .NET.

Sintaxe

usando montagem < .NET-assembly-path >

Nessa sintaxe, quando um assembly é carregado, os tipos .NET desse assembly são pré-carregados no script antes de serem analisados. Como resultado, é possível desenvolver novas classes do PowerShell que usam os tipos de assembly pré-carregados.

Veja um exemplo de aplicação da instrução “using” com um “assembly”:

usando o assembly System.Windows.Forms

Neste comando, carregamos o assembly “ System.Windows.Forms” no PowerShell usando a instrução “using”.

Instrução “usando” para Chaves Hashtable

Tabelas de hash ” são estruturas de dados adaptáveis ​​usadas no PowerShell para diversas finalidades, incluindo armazenamento de dados de configuração, fornecimento de argumentos para cmdlets e armazenamento de dados em scripts.

O hash criptográfico para a string “ LinuxDica! ” é obtido através do seguinte script:

usando namespace System.Text
usando o namespace System.IO [ corda ] $string = 'LinuxHint!'
[ corda ] $algoritmo = 'SHA1'

[ byte [ ] ] $stringbytes = [ Codificação Unicode ] ::Unicode.GetBytes ( $ string )

[ Fluxo ] $memorystream = [ MemoryStream ] ::novo ( $stringbytes )
$hashfromstream = Get-FileHash -InputStream $memorystream `
-Algoritmo $algoritmo
$hashfromstream .Hash.ToString ( )

O código do PowerShell acima começa importando os namespaces necessários para operações de arquivo e codificação. A string de entrada e o algoritmo de hash (neste caso “ SHA1 ”), são então definidos. A string de entrada é então codificada usando “ Unicode ” para criar uma matriz de bytes.

O conteúdo da matriz de bytes é então usado para construir um “ fluxo de memória ”. O valor de hash do fluxo de memória é calculado usando o algoritmo “SHA1” fornecido pelo “ Get-FileHash ” cmdlet. O script termina imprimindo o valor de hash obtido como uma string na saída.

Saída

Conclusão

O ' usando ” no PowerShell é uma ferramenta poderosa para especificar namespaces, módulos ou assemblies. Sua sintaxe e finalidade fornecem uma abordagem padronizada e segura para o manuseio de recursos, facilitando o descarte adequado e reduzindo a duplicação de código.