Gostaria de gerar variáveis e valores em um script do PowerShell configurando sinalizadores e vendo os dados matriculados em todo o script.
Como eu faria isso?
Por exemplo, qual seria o PowerShell equivalente ao seguinte código PHP?
echo "filesizecounter: " . $filesizecounter
powershell
phill
fonte
fonte
Respostas:
Existem várias maneiras:
Write-Host
: Escreva diretamente no console, não incluído na saída da função / cmdlet. Permite que a cor do primeiro plano e do plano de fundo seja definida.Write-Debug
: Escreva diretamente no console, se$DebugPreference
definido como Continuar ou Parar.Write-Verbose
: Escreva diretamente no console, se$VerbosePreference
definido como Continuar ou Parar.O último é destinado a informações opcionais adicionais,
Write-Debug
para depuração (portanto, parece caber neste caso).Adicional : No PSH2 (pelo menos), os scripts que usam a ligação de cmdlet obtêm automaticamente os parâmetros
-Verbose
e-Debug
switch, ativando localmenteWrite-Verbose
eWrite-Debug
(ou seja, substituindo as variáveis de preferência), como os cmdlets e provedores compilados.fonte
O Powershell possui um eco de mapeamento de alias para
Write-Output
, portanto:echo "filesizecounter : $filesizecounter"
fonte
echo
é um alias paraWrite-Output
como por Microsoft do TechNet e discutido aquiO PowerShell interpola, não é?
Em PHP
também pode ser escrito como:
No PowerShell, algo assim deve atender às suas necessidades:
fonte
fonte
De longe, a maneira mais fácil de ecoar no PowerShell, é apenas criar o objeto String e deixar o pipeline produzir:
Obviamente, você abre mão de alguma flexibilidade ao não usar os métodos Write- *.
fonte
eco é alias para Write-Output, embora pareça o mesmo que Write-Host .
Não é qual é a diferença entre eco e Host de gravação no PowerShell? .
echo é um alias para Write-Output, que grava no fluxo de saída Success. Isso permite que a saída seja processada por meio de pipelines ou redirecionada para arquivos. O Write-Host grava diretamente no console, para que a saída não possa mais ser redirecionada / processada.
fonte
O host de gravação funciona bem.
fonte
Não sei se é sensato fazê-lo, mas você pode simplesmente escrever
E deve gerar:
fonte
"filesizecounter: $filesizecounter"
é ainda mais curto.O PowerShell possui aliases para vários comandos comuns, como
echo
. Digite o seguinte no PowerShell:para obter uma resposta:
Até Get-Alias tem um alias
gal -> Get-Alias
. Você pode escrevergal echo
para obter o alias paraecho
.Outros aliases estão listados aqui: https://docs.microsoft.com/en-us/powershell/scripting/learn/using-familiar-command-names?view=powershell-6
cat dir mount rm cd echo move rmdir chdir erase popd sleep clear h ps sort cls history pushd tee copy kill pwd type del lp r write diff ls ren
fonte
Experimentar
Get-Content .\yourScript.PS1
e você verá o conteúdo do seu script.Além disso, você pode inserir esta linha no seu código de script:
....
fonte
Também deve ser mencionado que Set-PSDebug é semelhante ao
echo on
comando em lote da velha escola :Este comando resultará na exibição de todas as linhas do script em execução:
fonte