PowerShell ISE открыть предыдущие файлы

1042
Ryan Gates

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

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

1
Я не публикую это как ответ, так как я еще не попробовал, но посмотрите здесь: http://jdhitsolutions.com/blog/powershell/4332/friday-fun-open-last-file- в-Powershell-ISE / Ob1lan 9 лет назад 0

2 ответа на вопрос

0
Windos

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

Какие альтернативные редакторы PowerShell предлагают эту функциональность? Ryan Gates 9 лет назад 0
@RyanGates, я думаю, PowerGUI. Это было частью стандартной сборки на моей рабочей станции, но я лично ею не пользуюсь. В противном случае попробуйте PrimalScript / PowerShell Studio. Windos 9 лет назад 0
0
CMella

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

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

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

Похожие вопросы