Это старый вопрос сейчас, но я пришел сюда в поисках ответа, так что решил дать результаты своих экспериментов.
Есть объект $psISE
который управляет настройками ISE, открытыми файлами и т.д. С этим можно многое сделать.
Была многообещающая функция:
$psISE.CurrentPowerShellTab.Files.Clear()
К сожалению, это просто закроет все открытые файлы (если они были сохранены), а затем откроет новый файл без названия.
Я закончил с этим:
$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
$file = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($file)
}
По сути, он продолжает проверять открытые файлы и закрывает их, пока не останется ни одного открытого. Если бы вы запустили это в интерактивном режиме, и у вас был открыт несохраненный документ, вы довольно быстро оказались бы залиты ошибкой, так как он не закрылся, а затем вернулся к попытке закрыть его снова.
Затем вы можете поместить это в свой профиль ISE (C:\username\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1). Вот как выглядит мой профиль на данный момент:
$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
$file = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($file)
}
psEdit $PSScriptRoot\snips.ps1
Так как это запускается при запуске ISE, он закрывает файл без названия по умолчанию и открывает случайный файл с небольшими фрагментами, на которые я хотел бы сослаться вместо этого. Вы можете опустить эту последнюю строку или изменить ее на любой файл, который вы хотите открыть.
Обратите внимание, что $null =
используется для подавления вывода, и это быстрее, чем отправка в Out-Null
(что, я думаю, важно, когда вы ожидаете загрузки вашего редактора).