1

Как я могу настроить PowerShell ISE, чтобы он открывал вкладки для каждого файла, который был открыт ранее, когда я закрывал его?

Это особенно полезно, поскольку я обычно возвращаюсь к работе над тем же сценарием или набором сценариев.

2 ответа2

0

Вы также можете запустить:

Стоп-процесс $ pid -Force

Это убьет процесс для ISE, и при следующем запуске ISE он должен будет запросить перезагрузку последних вкладок.

0

К сожалению, я не мог заставить это работать автоматически / по таймеру. Он использует переменную $psISE которую я не могу понять, как получить доступ через фоновые задания или зарегистрированные события.

Вам нужно отредактировать свой профиль ISE, вам может потребоваться создать его, и он обычно находится в C:\Users_USERNAME_\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

Сначала укажите, где сохранить информацию о том, что у вас было открыто:

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

Это в конечном итоге попадет в текстовый файл в той же папке, что и профиль.

Затем проверьте наличие файлов и откройте перечисленные в нем файлы.

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

Последний фрагмент головоломки - это функция, которая захватывает текущие открытые файлы и записывает полные пути к ним в текстовый файл.

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
}

Запустите Save-OpenFile время от времени (и перед закрытием ISE), и то, что у вас было открыто в тот момент времени, будет вновь открыто. Как я сказал в начале этого поста, было бы здорово, если бы вы могли автоматически запускать это, когда ISE закрывается, но я не мог получить доступ к информации в рамках такого события, как это.

Вы можете упростить задачу, добавив псевдоним для функции или сделав что-то еще, чтобы добавить его в свой обычный рабочий процесс, чтобы он стал привычным для регулярного запуска.

Надеюсь, что это поможет или поможет вам получить полное решение.

Примечание. Некоторые альтернативные редакторы PowerShell повторно открывают ваши документы между сессиями, поэтому, если вы не уверены в них, вы можете изучить их как варианты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .