Серверная (www.it-simple.ru)

Глюки командного интерпретатора cmd.exe


Знаете ли вы, что...

При выделении содержимого окна командного интерпретатора любая выполняющаяся в нём программа, скрипт или команда ставится на паузу. И стоит на паузе до тех пор, пока выделение не будет снято.

Попробуйте сами:

  1. Откройте cmd.exe и включите в настройках возможность выделения текста (т.н. режим редактирования).

    Правая кнопка мыши на заголовок, меню «Свойства», вкладка «Общие», группа «Редактирование», галка «Выделение мышью».

    Процедура «Редактирования» выглядит следующим образом: с нажатой левой кнопкой мыши можно выделить прямоугольник, а при нажатии правой кнопки мыши текст из прямоугольника падает в буфер обмена. Выделение при этом снимается.

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

  2. Сэмулируйте запуск продолжительного скрипта, который делает важные вещи. Например, вот так:

    ping -t localhost

  3. Выделите что-нибудь. Можно даже «случайно» ткнуть мышью в любое место: выделится один символ под указателем.

  4. Материтесь.

Поясняющий рисунок «Зависший пинг».

Внимание на белый прямоугольник справа от вывода. Это выделение.
О том, что это именно выделение, свидетельствует и изменившийся заголовок окна: к нему добавилось слово «Выбрать».

Кстати, при прокрутке содержимого окна ползунком — исполняемый внутри скрипт тоже ставится на паузу. До тех пор, пока левая кнопка мыши не будет отжата.


Толковым программистам из микрософта нужно было побороть ситуацию, когда текст в выделенной области может меняться в результате работы скрипта или программы. Толковые программисты из микрософта нашли самый лучший вариант: приостановленная программа не сможет изменить содержимое окна!
И ниибёт.
Даже если в окне у тебя выполняется суточный бэкап, а ты ткнул в него мышью совершенно случайно.

Протестировано в: