PowerShell ISE abrir arquivos anteriores

1

Como posso configurar o PowerShell ISE para que ele abra abas para cada arquivo que foi aberto anteriormente quando eu fechá-lo?

Isso é particularmente útil, pois normalmente volto a trabalhar no mesmo script ou conjunto de scripts.

    
por Ryan Gates 25.06.2015 / 17:47

2 respostas

0

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.

    
por 02.07.2015 / 07:39
0

Você também pode executar:

Parar Processo $ pid -Force

Isso eliminará o processo do ISE e, na próxima vez que você executar o ISE, ele deverá avisar para recarregar as últimas guias.

    
por 23.08.2018 / 21:33