Variáveis definidas pelo usuário
Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Tópico modificado em: 2006-09-21
Uma variável é um local no qual as informações são armazenadas. Ao contrário da maioria dos ambientes de programação, no Shell de Gerenciamento do Exchange, não é preciso declarar uma variável antes de usá-la.
Você designa uma variável precedendo uma cadeia de caracteres pelo sinal de cifrão ($
). Será preciso colocar a cadeia de caracteres entre chaves ({ }
) se ela contiver espaços ou outros caracteres especiais. Ao usar a notação de referência de matriz ([ ]
), você pode endereçar os elementos de uma matriz ou variável de tabela hash.
Para obter mais informações sobre matrizes, consulte Matrizes.
Usando variáveis para armazenar valores
As variáveis são muito úteis se você deseja armazenar um valor. É possível atribuir valores às variáveis usando um operador de atribuição. Para obter mais informações sobre operadores, consulte Sintaxe.
Por exemplo, para atribuir um valor igual a 8
à variável $Example
, use o seguinte comando:
$Example = 8
Esse comando atribui o número inteiro 8
à variável $Example
. Você pode então chamar a variável $Example
mais tarde em outro comando para chamar o valor novamente. Os valores especificados em uma variável são tratados exatamente como se o valor que ela contém tivesse sido digitado no local em que a variável foi especificada. Por exemplo, os dois comandos a seguir serão equivalentes se a $Example2
for atribuído o valor "Hello"
:
Write-Host $Example2
Write-Host "Hello"
Armazenando a saída de um comando em uma variável
Você pode também armazenar a saída de comandos em uma variável para uso posterior. Ao atribuir um comando a uma variável, o comando é avaliado no momento em que ele é executado. A saída desse comando é atribuída à variável. Por exemplo, se você executar $CurrentDate = Get-Date
na linha de comando e chamar $CurrentDate
repetidamente por vários segundos, o valor relatado será o mesmo sempre que a variável for chamada.
Ao atribuir a saída de um comando a uma variável, você também pode acessar as propriedades e os métodos do objeto subjacente. Por exemplo, para exibir as propriedades e os métodos disponíveis ao atribuir Get-Date
a $CurrentDate
, você pode usar o comando $CurrentDate | Get-Member
. Ao usar o comando $CurrentDate | Get-Member
, as propriedades a seguir são retornadas em uma lista:
Date Property System.DateTime Date {get;}
Day Property System.Int32 Day {get;}
DayOfWeek Property System.DayOfWeek DayOfWeek {get;}
DayOfYear Property System.Int32 DayOfYear {get;}
Hour Property System.Int32 Hour {get;}
Kind Property System.DateTimeKind Kind {get;}
Millisecond Property System.Int32 Millisecond {get;}
Minute Property System.Int32 Minute {get;}
Month Property System.Int32 Month {get;}
Second Property System.Int32 Second {get;}
Ticks Property System.Int64 Ticks {get;}
TimeOfDay Property System.TimeSpan TimeOfDay {get;}
Year Property System.Int32 Year {get;}
DateTime ScriptProperty System.Object DateTime {get=if ($this.Di...
Você pode então chamar uma dessas propriedades digitando a variável, um ponto (.
) e a propriedade que deseja exibir. Por exemplo, para exibir o ano armazenado em uma variável, use o seguinte comando:
$CurrentDate.Year
Ao acessar as propriedades de uma variável, você pode facilmente manipular e usar cada parte de informação armazenada na variável sem o uso da análise do texto.
Armazenando a saída do comando Dir em uma variável
Você pode também armazenar a saída do comando Dir
em uma variável. Já que o comando Dir
retorna várias linhas ao ser executado, cada linha retornada é armazenada em uma variável como um novo elemento da matriz. Você pode então acessar cada objeto de arquivo armazenado na matriz recém-criada. Para obter mais informações sobre matrizes, consulte Matrizes.
O comando a seguir atribui a saída do comando Dir
à variável $DirOutput
:
$DirOutput = Dir
Você pode então selecionar um objeto de arquivo específico ao determinar o índice de matriz que deseja exibir, como a seguir:
$DirOutput[1].Name
Ou pode criar um loop simples que percorre toda a matriz e exibe o nome e o tamanho de cada arquivo armazenado nela, como a seguir:
0..$DirOutput.Length | ForEach { $DirOutput[$_].Name + " is " + $DirOutput[$_].Length + " bytes long." }
A lista a seguir examina esse exemplo:
O comando
0..$DirOutput.Length
instrui o Shell de Gerenciamento do Exchange a enviar um número inteiro a partir de0
ao comprimento máximo da matriz armazenada na variável$DirOutput
.A saída do comando
0..$DirOutput.Length
é canalizada para o comandoForEach
que percorre cada elemento da matriz até atingir o final da matriz. O comandoForEach
executa os comandos que estão entre chaves "{ }
".A variável
$_
armazena o objeto atual que está na pipeline. Nesse caso, o objeto na pipeline é um número inteiro produzido pelo comando0..$DirOutput.Length
, já que vai de0
ao comprimento máximo da matriz. Essa variável é usada no comando$DirOutput[$_].Name
e no comando$DirOutput[$_].Length
para selecionar o elemento da matriz a ser acessado.Para obter mais informações sobre a variável
$
_, consulte Variáveis de Shell.Os sinais de mais "
+
" concatenam a saída do comando $DirOutput[$_].Name
e do comando$DirOutput[$_].Length
, juntamente com as cadeias de caracteres fornecidas, para criar uma saída semelhante à seguinte:abv_dg.dll is 416144 bytes long. addxa.dll is 285056 bytes long. ASDat.MSI is 5626880 bytes long. ASEntDat.MSI is 5626880 bytes long. ASEntIRS.MSI is 910336 bytes long. ASEntSig.MSI is 45056 bytes long. BPA.Common.dll is 211848 bytes long. BPA.ConfigCollector.dll is 101272 bytes long. BPA.NetworkCollector.dll is 52128 bytes long.
Esses exemplos mostram que você pode usar a propriedade Length
mais de uma vez para exibir diferentes informações sobre a mesma variável. Você pode fazer isso já que mais de um tipo de dado está armazenado na variável $DirOutput
. O primeiro tipo de dado é o próprio objeto de diretório e o segundo tipo de dado são os objetos de arquivos. Ao executar o comando $DirObject.Length
, sem especificar um índice de matriz, você estará acessando os tipos de objeto pai de diretório armazenados na matriz. Ao especificar um índice de matriz, como $DirObject[5].Length
, você estará acessando os objetos filho do arquivo armazenados no objeto do diretório.
Esse comportamento existe em muitos objetos. Você pode normalmente acessar vários níveis de dados de objeto contidos em uma única variável. A capacidade de acessar esses dados torna o Shell de Gerenciamento do Exchange muito flexível.