PowerShell ISE abre archivos anteriores

1

¿Cómo puedo configurar PowerShell ISE para que abra pestañas para cada archivo que se abrió previamente cuando lo cerré?

Esto es particularmente útil ya que normalmente vuelvo a trabajar en el mismo script o conjunto de scripts.

Ryan Gates
fuente
No publico
Ob1lan

Respuestas:

0

Desafortunadamente, no pude hacer que esto funcione automáticamente / en un temporizador. Utiliza la $psISEvariable a la que no puedo entender cómo acceder a través de trabajos en segundo plano o eventos registrados.

Debe editar su perfil ISE, es posible que necesite crearlo y generalmente vive en C: \ Users_USERNAME_ \ Documents \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1

Primero, especifique dónde guardar la información sobre lo que tenía abierto:

$SavePath = Join-Path -Path (Split-Path -Path $profile) -ChildPath 'openFiles.txt'

Eso terminará yendo en un archivo txt en la misma carpeta que el perfil.

Luego verifique la existencia de los archivos y abra los archivos que figuran en él.

if (Test-Path -Path $SavePath)
{
    $OpenFiles = Import-Csv -Path $SavePath
    psEdit -filenames $OpenFiles
}

La pieza final del rompecabezas es una función que toma los archivos abiertos actuales y descarga los caminos completos en el archivo 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
}

Ejecute de Save-OpenFilevez en cuando (y antes de cerrar el ISE) y lo que tenía abierto en ese momento se volverá a abrir. Como dije al comienzo de esta publicación, sería genial si pudieras activar esto automáticamente cuando el ISE se cierre, pero no podría acceder a la información dentro de un evento como ese.

Puede simplificar las cosas agregando un alias para la función, o haciendo otra cosa para agregarlo a su flujo de trabajo habitual, de modo que se convierta en un hábito que lo ejecute regularmente.

Espero que esto ayude o lo inicie en el camino para obtener una solución completa.

Nota: Algunos editores alternativos de PowerShell volverán a abrir sus documentos entre sesiones, por lo que si está decidido, puede investigarlos como opciones.

Windos
fuente
¿Qué editores alternativos de PowerShell ofrecen esta funcionalidad?
Ryan Gates
@RyanGates, creo que PowerGUI. Formaba parte de la compilación estándar en mi estación de trabajo, pero yo personalmente no la uso. En su defecto, pruebe PrimalScript / PowerShell Studio.
Windos
0

También puedes ejecutar:

Detener proceso $ pid -Force

Esto matará el proceso para el ISE y la próxima vez que ejecute el ISE, debería solicitar la recarga de las últimas pestañas.

CMella
fuente