Enquanto aprendia o PowerShell, executei o comando ${$}
por engano e obtive uma saída como esta:
PS C:\Users\myuser> Get-ChildItem Env: | Out-File -FilePath $home\env.txt
PS C:\Users\myuser> ${$}
$home\env.txt
Primeiro acreditei que fosse algo como $_
, mas fazendo ${$_}
não se comporta da mesma forma.
De acordo com outras amostras que tentei, parece recuperar o último argumento do comando anterior, mas não tenho certeza de como funciona ou o que está realmente fazendo.
Eu apreciaria uma explicação ou link para documentação/explicação.
Informações do host do PowerShell, se necessário:
Nome: ConsoleHost
Versão: 5.1.17134.858
InstanceId: [Removido porque não posso compartilhar sem cuidado]
UI: System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture: en-US
CurrentUICulture: en-US
PrivateData: Microsoft. PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
A entrada
${$}
é avaliada como a variável automática$$
.$$
em si é definido como o último token da última linha de entrada na sessão. No seu caso, é definido como o último argumentohome\env.txt
Você pode ver esse efeito também com uma entrada como
${?}
aquela results in$?
, outra variável automática, que contém o resultado do último comando executado.Para obter uma lista de variáveis automáticas, consulte: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables