Quando trabalhamos no PowerShell, podemos facilmente acessar os comandos executados anteriormente usando as setas para cima e para baixo. No entanto, o comando Get-History
exibe apenas o histórico da sessão atual. Se você já tentou encontrar comandos de sessões passadas e notou que eles não aparecem no Get-History
, este post é para você!
Por que Get-History
não mostra tudo?
O Get-History
apenas retorna os comandos executados na sessão atual do PowerShell. Comandos de sessões anteriores não são armazenados automaticamente nesse histórico. Contudo, o módulo PSReadLine
, que lida com a navegação do histórico através das setas, salva todos os comandos em um arquivo de texto, mesmo entre reinicializações do PowerShell.
Como acessar o histórico completo de comandos?
O módulo PSReadLine
salva o histórico de comandos em um arquivo no disco. Aqui está como você pode localizar e exportar esse histórico.
1. Localizando o arquivo de histórico do PowerShell
Por padrão, o histórico de comandos é salvo em um arquivo de texto que pode ser encontrado nos seguintes diretórios:
- Windows:
C:\Users\<SeuUsuário>\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
- Linux/macOS:
~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt
2. Visualizando o histórico completo
Você pode ler o conteúdo do arquivo de histórico diretamente no PowerShell com o seguinte comando:
powershell
Copiar código
Get-Content "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"
3. Exportando o histórico para um formato específico
Se você deseja exportar o histórico completo para outros formatos como CSV, TXT ou JSON, veja abaixo como fazer isso:
-
Exportar para um arquivo TXT:
powershellCopiar códigoGet-Content "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt" | Out-File -FilePath "C:\caminho\para\arquivo.txt"
-
Exportar para um arquivo CSV:
powershellCopiar códigoGet-Content "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt" | Export-Csv -Path "C:\caminho\para\arquivo.csv" -NoTypeInformation
-
Exportar para um arquivo JSON:
powershellCopiar códigoGet-Content "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt" | ConvertTo-Json | Out-File -FilePath "C:\caminho\para\arquivo.json"
Conclusão
O PowerShell mantém um histórico de comandos entre sessões, mas para acessar esse histórico completo, você precisa ir além do Get-History
e consultar o arquivo gerenciado pelo PSReadLine
. Agora você sabe como localizar e exportar esse histórico para diversos formatos. Isso pode ser útil para documentar atividades ou revisitar comandos que você executou no passado.