2

Когда я запускаю powershell_ise.exe , по умолчанию используется открытый файл «Untitled.ps1». Есть ли механизм, чтобы попросить ISE запустить, показывая только приглашение?

То есть в тот момент, когда я запускаю Powershell ISE, я получаю следующее:

Powershell с пустым документом

тогда как я хочу следующее:

Powershell без документов

3 ответа3

2

Очень старый вопрос на данный момент, но я просто отказался от @Windos, чтобы найти решение, которое работает для меня. Так как я использую стероиды ISE, есть функция сохранения открытых файлов. Я не хотел закрывать все открытые файлы при запуске, только Untitled.

foreach($file in $psISE.CurrentPowerShellTab.Files) {
  if ($file.DisplayName -like "Untitled*.ps1"){
    $deleteMe = $file
  }
}
$psISE.CurrentPowerShellTab.Files.Remove($deleteMe)

Попытка удалить файл в цикле for приведет к ошибке перечисления. Если при запуске открыто несколько сценариев без названия, $deleteme может быть массивом, который добавляет несколько файлов с собственным foreach для удаления всех из них.

1

Просто настройте параметры View в меню.

  • Снимите флажок Показать панель сценариев
  • Снимите флажок Показать командную надстройку
  • Снимите флажок Показать панель инструментов
  • Снимите флажки с других параметров по желанию

1

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

Есть объект $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 (что, я думаю, важно, когда вы ожидаете загрузки вашего редактора).

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