Infelizmente, não consegui que isso funcionasse automaticamente / em um timer. Ele usa a variável $psISE
, que não consigo descobrir como acessar por meio de trabalhos em segundo plano ou eventos registrados.
Você precisa editar o seu perfil ISE, pode ser necessário criá-lo e ele geralmente fica em C: \ Users_USERNAME_ \ Documents \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1
Primeiro, especifique onde salvar as informações sobre o que você tinha aberto:
$SavePath = Join-Path -Path (Split-Path -Path $profile) -ChildPath 'openFiles.txt'
Isso terminará em um arquivo txt na mesma pasta do perfil.
Em seguida, verifique a existência dos arquivos e abra os arquivos listados nele.
if (Test-Path -Path $SavePath)
{
$OpenFiles = Import-Csv -Path $SavePath
psEdit -filenames $OpenFiles
}
A peça final do quebra-cabeça é uma função que captura os arquivos abertos atuais e despeja os caminhos completos para eles no arquivo txt.
function Save-OpenFile {
$Files = @()
foreach ($Tab in $psISE.PowerShellTabs)
{
foreach ($File in ($Tab.Files | Where-Object { !$_.IsUntitled }))
{
$Files += $File.FullPath
}
}
$Files | Out-File -FilePath $SavePath
}
Execute Save-OpenFile
de vez em quando (e antes de fechar o ISE) e o que você abriu naquele momento reabrirá. Como eu disse no início deste post, seria ótimo se você pudesse acionar isso automaticamente quando o ISE fechasse, mas não consegui acessar as informações dentro de um evento como esse.
Você pode simplificar as coisas adicionando um alias para a função ou fazendo outra coisa para adicioná-la ao seu fluxo de trabalho regular, de modo que se torne um hábito executá-lo regularmente.
Espero que isso ajude ou inicie você em um caminho para obter uma solução completa.
Observação: alguns editores alternativos do PowerShell reabrirão seus documentos entre as sessões, portanto, se você estiver pronto, poderá investigar esses documentos como opções.