it-swarm.com.ru

Почему моя команда Prompt зависает в Windows 10?

Я добавляю этот вопрос после целого дня борьбы с этой невероятно разочаровывающей функцией командной строки Windows 10, которая заставила меня подумать, что что-то не так с моим кодом консольного приложения. Надеюсь, это кому-нибудь поможет.

Проблема. Кажется, что мое консольное приложение перестало работать случайно. Что здесь происходит?

78
Shaun Rowan

В итоге проблема стала новой функцией консоли windows 10. В конфигурации по умолчанию каждый раз, когда вы щелкаете по окну командной строки в Windows 10, он немедленно останавливает процесс приложения при попытке записи в консоль. Когда это происходит, командное окно переходит в режим "выбора".

Вы можете сказать, что это произошло, потому что в строке заголовка командного окна будет добавлено слово "Выбрать":

frozen command window

Чтобы снова запустить вашу программу, вы должны нажать escape или щелкнуть где-нибудь еще.

Чтобы избавиться от этого странного поведения, вы можете отключить режим QuickEdit:

disable QuickEdit Mode

169
Shaun Rowan

Что я хотел бы добавить здесь к ответу Шона Роуэна, так это то, что для того, чтобы он работал во всех окнах консоли, вы должны нажать "По умолчанию" вместо "Свойства" и внесите свои изменения там, как описано в этот пост .

5
iko79

Я столкнулся с этой проблемой совсем недавно, когда один из пользователей (который настроил Quickedit в своей командной строке) использовал инструмент, разработанный мной на Java, и зависал при запуске из командной строки.

Наконец, проблема была решена путем перенаправления ведения журнала внутри пакетного сценария в файл, как показано ниже:

@echo off
...
Java.exe -jar mytool.jar

необходимо обновить до

Java.exe -jar mytool.jar > log.txt
1
Priyanku