К сожалению, я не мог заставить это работать автоматически / по таймеру. Он использует $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 повторно открывают ваши документы между сессиями, поэтому, если вы не уверены в них, вы можете изучить их как варианты.