2016-09-12 3 views
0

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

+0

Ничего себе. Много работы, чтобы избежать использования 0,5сек для проверки кнопки, что один раз в день, когда вы не знаете, какую кнопку вы собираетесь щелкнуть. :-) Это определенно по дизайну. Когда вы не выбираете текст, CTRL + C прервет скрипт, как в обычной консоли. Если вы используете длинный скрипт, я бы предложил отдельную консоль powershell/ISE. –

+0

@FrodeF. У меня не было бы проблем с Ctrl-C, прервав скрипт *, если бы была выбрана панель консоли *. В этом случае я этого не сделал - курсор находился в панели текстового редактора. Ctrl-C не должен быть передан на консоль. Как легко проскользнуть и нажать C вместо V? Эти опечатки должны быть безвредными. И, как я объяснил briantist ниже, я все еще работаю над этим долго работающим скриптом, поэтому его запускают в ISE. – Gargravarr

+0

ISE предназначен для разработки, PowerShell консоли для выполнения. Во время разработки вы используете панель сценариев в качестве консоли, поэтому ее отмена по CTRL + C, в то время как не выбор текста имеет жизненно важное значение. Если бы мне пришлось щелкнуть на консоли, я бы, вероятно, больше не использовал ISE для разработки. Или я попытаюсь переопределить горячую клавишу с помощью дополнения ISE, если это возможно. С другой стороны, MS планирует сделать поддержку PowerShell ISE более Extensions (начиная с предварительного просмотра ISE), поэтому этот параметр может быть добавлен, чтобы изменить это. Отправьте его на uservoice –

ответ

3

Обход: File>New PowerShell Tab

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

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

Вы упомянули:

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

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

+0

Спасибо, это похоже на действительное обходное решение. Дело в том, что я все еще разрабатываю долговременный скрипт, поэтому я его запускал в ISE в то время. В производстве этот скрипт будет работать без проблем на наших серверах сборки. Создание новой вкладки действительно работает, но это означает, что я не могу сразу увидеть исполняемый скрипт. Кажется, это глупое дизайнерское решение для того, чтобы заставить Ctrl-C сделать это в окне редактора. – Gargravarr

+0

@ Gargravarr добавил немного больше информации в редактирование. – briantist

+0

Оба действительных пункта. Я просто хочу, чтобы был простой вариант сказать «не делай этого». – Gargravarr