Como obtenho (gci) .count para retornar valores numéricos apropriados para listas vazias ou de item único?

1

Related:
How can I write a script to count files modified within a particular month?

Quando tento obter uma contagem de itens, por exemplo com (gci).count para contar arquivos em uma pasta, o PowerShell não retorna nenhuma saída para listas vazias ou listas contendo apenas um item. Funciona bem para listas contendo vários itens, no entanto.

Como posso fazer com que o PowerShell retorne valores numéricos adequados para todos os casos? Ou seja: como posso obtê-lo para gerar um zero real para listas vazias e gerar um para listas de itens únicos?

Meu caso de uso específico, conforme descrito na pergunta relacionada acima, é obter uma contagem de itens em uma lista que resulta da canalização da saída do comando gci para where .

    
por Iszi 09.08.2013 / 20:44

1 resposta

3

Isso tem a ver com o fato de que o powershell, ao retornar uma matriz de 1 item, simplesmente reduz o array a esse único item.

Antes da versão 3, isso resultaria em um objeto sem a propriedade count esperada e seu resultado estaria vazio. Isso foi "corrigido" na versão 3 .

Então você tem duas opções:

  1. Atualizar para o Powershell v3
  2. Aplique a seguinte solução alternativa em que você sempre agrupa seus resultados como um tipo de matriz @() :

    @ (gci) .count

por 09.08.2013 / 21:06

Tags