Powershell ISE - Ctrl-C в пустой строке убивает исполняемый скрипт?

Ранее я запустил долго выполняющийся скрипт в ISE и начал работу над вторым, пока он выполнялся, следя за его ходом в панели консоли. Я копировал вызов функции в другую часть второго скрипта, когда опечатался и нажал Ctrl-C, а не Ctrl-V. Немедленно исполняемый скрипт завершился. Кажется, ISE интерпретировала это как SIGTERM для запущенного скрипта, хотя у меня не была выделена панель консоли.
Я не вижу никаких вариантов, чтобы отключить это, но если это задуманное поведение, то я считаю это неприемлемым. . Мне нужно найти способ отключить это, так как я потерял около часа работы (сценарий должен выполняться от начала до конца) из-за одного случайного щелчка, который ничего не должен был делать. Кто-нибудь знает, является ли это предполагаемым поведением, или я столкнулся с чем-то другим?


person Gargravarr    schedule 12.09.2016    source источник
comment
Ух ты. Много работы, чтобы не использовать 0,5 секунды для проверки кнопки один раз в день, когда вы не уверены, какую кнопку собираетесь нажать. :-) Это определенно по дизайну. Когда вы не выделяете текст, CTRL+C прервет выполнение скрипта, как в обычной консоли. Если вы используете длинный скрипт, я бы предложил отдельную консоль powershell/ISE.   -  person Frode F.    schedule 12.09.2016
comment
@ФродеФ. У меня не было бы проблем с прерыванием сценария по нажатию Ctrl-C, если бы у меня была выбрана панель консоли. В данном случае я этого не делал - курсор находился в панели текстового редактора. Ctrl-C не должен был передаваться на консоль. Насколько легко поскользнуться и ударить C вместо V? Эти опечатки должны быть безвредными. И, как я объяснил briantist ниже, я все еще работаю над этим долго работающим скриптом, поэтому запускаю его в ISE.   -  person Gargravarr    schedule 13.09.2016
comment
ISE предназначена для разработки, консоль PowerShell для исполнения. Во время разработки вы используете панель сценариев в качестве консоли, поэтому жизненно важно отменить ее нажатием CTRL+C, не выделяя текст. Если бы мне пришлось щелкать в консоли, я бы, вероятно, больше не использовал ISE для разработки. Или я бы попытался переопределить горячую клавишу с помощью надстройки ISE, если это возможно. Кстати, MS планирует заставить PowerShell ISE поддерживать больше расширений (начиная с предварительного просмотра ISE), поэтому может быть добавлена ​​​​опция для изменения этого. Запости на юзервойс   -  person Frode F.    schedule 13.09.2016


Ответы (1)


Обходной путь: File > New PowerShell Tab

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

Но вы можете подумать, что ISE лучше подходит для разработки и тестирования сценариев, а не для длительных «производственных» процессов, в то время как вы также разрабатываете другие сценарии. Я имею в виду, что вы можете использовать его для этого, но, вероятно, он считается крайним вариантом использования.

Ты упомянул:

Создание новой вкладки работает, но это означает, что я не могу сразу увидеть выполняющийся в данный момент скрипт.

В этом случае вы можете открыть новый хост консоли (powershell.exe) и запустить свой скрипт вне ISE (продолжая его разработку и сохранение в ISE). Но его все еще может быть трудно увидеть, если вы не сможете переместить его на другой монитор. В этом случае вы могли бы просто открыть совершенно новый экземпляр ISE!

person briantist    schedule 12.09.2016
comment
Спасибо, это кажется допустимым обходным путем. Дело в том, что я все еще разрабатываю долгосрочный скрипт, поэтому в то время я запускал его в ISE. В продакшене этот скрипт будет работать без головы на наших серверах сборки. Создание новой вкладки работает, но это означает, что я не могу сразу увидеть выполняющийся в данный момент скрипт. Мне кажется глупым дизайнерским решением заставить Ctrl-C делать это в окне редактора. - person Gargravarr; 12.09.2016
comment
Оба действительные точки. Я просто хочу, чтобы была простая возможность сказать «не делай этого». - person Gargravarr; 12.09.2016
comment
@Gargravarr, к сожалению, я так не думаю. Теоретически предварительная версия PowerShell ISE ведет к более частым обновлениям и исправлениям для ISE, которые не привязаны к основным выпускам версии PowerShell, но с момента выхода в январе не было еще одной версии. - person briantist; 12.09.2016