Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre o backticks em scripts do PowerShell

Boa noite,

Eu queria tirar uma dúvida sobre os scripts em PowerShell. No caso do seguinte script

gci -recurse -file |
        ? Name -like "*.exe" |
        select `
            Name, `
            { "{0:N2}MB" -f ($_.Length / 1MB) }

É possível trocar os backticks por pipes? Eu tentei fazer a alteração, mas não deu muito certo. Obrigado pela atenção.

1 resposta
solução!

Olá, Salomão.

Não. O pipe sempre leva o valor da expressão à esquerda para o comando à sua direita (ou na próxima linha).

Observando apenas o trecho, erroneamente, com pipe:

select |
    Name,

A interpretação do PoweShell é de que o cmdlet Select-Object estaria passando seu valor para o comando Name, mas, o comando Name não existe! O pipe sempre é executado desta maneira.


Com o trecho correto abaixo:

select `
    Name,

Não estamos levando o resultado do cmdlet Select-Object para o comando Name. Na verdade, a interpretação é de que Name é um parâmetro para o select - a interpretção correta.