Como faço para que (gci).count retorne valores numéricos adequados para listas vazias ou de item único?

Como faço para que (gci).count retorne valores numéricos adequados para listas vazias ou de item único?

Relacionado:
Como posso escrever um script para contar arquivos modificados em um determinado mês?

Quando tento obter uma contagem de itens, por exemplo, para (gci).countcontar arquivos em uma pasta, o PowerShell não retorna nenhuma saída para listas vazias ou listas contendo apenas um item. Porém, funciona bem para listas que contêm vários itens.

insira a descrição da imagem aqui

Como posso fazer com que o PowerShell retorne valores numéricos adequados para todos os casos? ou seja: como posso gerar um zero real para listas vazias e um para listas de item único?

Meu caso de uso específico, conforme descrito mais detalhadamente na pergunta relacionada acima, é obter uma contagem de itens em uma lista resultante da canalização da gcisaída de um comando para where.

Responder1

Isso tem a ver com o fato de que o PowerShell, ao retornar uma matriz de 1 item, simplesmente reduzirá a matriz naquele único item.

Antes da versão 3, o resultado seria um objeto sem a countpropriedade esperada e seu resultado estaria vazio. Isso foi "consertado" emversão 3.

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

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

    @(gci).contagem

informação relacionada