Чому мій командний рядок заморожується в Windows 10?


146

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

Проблема: Моя консольна програма, схоже, випадково перестає працювати. Що відбувається?


2
Також потрібно натиснути Enter, щоб продовжити запуск програми
wrivas

Відповіді:


270

Проблема зрештою стала новою функцією консолі Windows 10. Під конфігурацією за замовчуванням кожен раз, коли ви клацаєте на вікно команди у вікні 10, воно негайно зупиняє процес застосування при спробі запису на консоль. Коли це відбувається, командне вікно перейшло в режим "вибору".

Ви можете сказати, що це сталося, тому що він буде префіксувати заголовок вікна команди зі словом "Вибрати":

заморожене вікно команди

Щоб знову запустити свою програму, потрібно натиснути клавішу Escape або клацнути де-небудь ще.

Щоб позбутися цієї дивної поведінки, ви можете відключити режим QuickEdit:

відключити режим QuickEdit


26
Мій бог дякую тобі! Я займався цим протягом року LOL. Також вам може знадобитися розібрати варіант, ЗАКРИТИ термінал та знову відкрити його. Принаймні, так це працює для мене (інакше він автоматично ввімкне його знову)
user2875289

3
У мене була багатогодинна робота з компіляції, яка б через це не морозила. Тож радий, що ви розмістили рішення!
Джоел

2
Думаючи, що ця відповідь допомогла відключити заморожування при натисканні, прокрутка бічної панелі також заблокує її. Попередня поведінка була заморожена під час утримування смуги прокрутки, а виведення було надруковано, коли ви відпустите смугу прокрутки. Будь-яка ідея, як повернутися, щоб ненавидіти стару поведінку / розморозити її? Esc або enter не працює.
квімнус

6
це дуже стара функція для швидшого копіювання та вставки. Просто Windows 10 починає включати його за замовчуванням. Як відключити клацання правою кнопкою миші, щоб вставити в PowerShell?
phuclv

3
"Feature not a bug"
бажання

20

Що я хотів би додати тут до відповіді Шона Роуана, це те, що для роботи у всіх вікнах консолі вам потрібно натиснути "За замовчуванням", а не "Властивості" та внести зміни там, як описано в цій публікації .


0

Я зіткнувся з цією проблемою зовсім недавно, коли один з користувачів (який конфігурував Quickedit у своєму командному рядку) використовував інструмент, який я розробив на Java, і запускав інструмент замороженим під час його запуску з командного рядка.

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

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

потрібно оновити до

java.exe -jar mytool.jar > log.txt


1
Для розробників цей потік може бути цікавим, ви можете відключити цю поведінку програмно за допомогою SetConsoleMode(kernel32.dll).
Groo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.