Есть ли сочетание клавиш для приостановки вывода окна CMD во время его работы?

14

Я нахожусь в процессе запуска пакетного сценария, который занимает очень много времени и чей вывод быстро увеличивается с нечитаемой скоростью. Существует ли сочетание клавиш, которое позволяет приостановить консоль CMD, на которой она в данный момент находится, чтобы остановить и прочитать вывод, а затем снова запустить ее с того же места?

введите описание изображения здесь

Хашим
источник
5
Там всегда CTRL-S. Затем CTRL-Q для перезапуска.
BillP3rd
Вы можете захватить поле прокрутки и переместить его вверх, это эффективно приостановит прокрутку. Затем вы можете нажать клавишу со стрелкой вниз, чтобы перейти к нижней части буфера.
Бурхан Халид
Разве это не целевое назначение клавиши «Scroll Lock»?
ТООГАМ

Ответы:

5

Я не видел этого в других ответах.

Я считаю, что последовательные управляющие последовательности «Ctrl-S» XOFF и «Ctrl-Q» XON являются ключевыми последовательностями, предназначенными для решения этой проблемы.

Посмотри пожалуйста;

XON / XOFF

NetScr1be
источник
1
Я изменил это, чтобы лучше ответить по нескольким причинам. По результатам исследований клавиша Pause / Break сама по себе останавливает вывод, но не выполнение, о чем другой ответ не упоминает. Ctrl + Pause / Break должен использоваться, чтобы остановить выполнение, и это немного более громоздко для ввода на большинстве клавиатур, чем Ctrl + S и Ctrl + Q (это можно сделать только левой рукой). Тем не менее, Ctrl + Pause / Break имеет то преимущество, что вам не нужно запоминать две дополнительные комбинации клавиш, поэтому оба ответа хороши, я просто хотел бы, чтобы этот получил те положительные отзывы, которых он заслуживает.
Хашим
Обратите внимание, что хотя этот ответ является источником вопроса для Unix / Linux, сочетания клавиш отлично работают на CMD.exe, по крайней мере на моей ОС Windows 7.
Хашим
1
@ Хашим, спасибо, что поделились своими исследованиями. Поскольку вы специально спрашивали, как приостановить вывод , я не рассматривал (и не проверял) такую ​​возможность, но о ней приятно узнать. (Upvoted)
23
16

Ваша клавиатура содержит Pause/Breakключ? Это хорошо послужило бы для этого. Вот как это выглядит или, по крайней мере, используется для:

Pause Break Key из Википедии

В качестве интересного бонуса этот ключ также можно использовать во время процедуры POST (Power On Self Test, которая запускается при включении компьютера) для чтения выходных данных из BIOS.

Если у вас нет этой клавиши, комбинация Control+ NumLockдолжна работать точно так же, и, согласно Википедии , существуют другие варианты в зависимости от вашего производителя .

Чтобы возобновить выполнение, нажмите Enter.

Marc.2377
источник
Обратите внимание, что на некоторых клавиатурах у вас может быть специальная клавиша блокировки прокрутки (обычно отмеченная ScrLk), которая может служить аналогичной цели.
Бурхан Халид
@BurhanKhalid Ну, я прочитал по этой ссылке, что она приостанавливает вывод , но не выполнение , и этот эффект, похоже, не относится к консоли MS Windows ... но, тем не менее, интересно знать
Marc.2377
1
С пингом, кажется, остановить выполнение. это очень странно, поскольку ping - это отдельный исполняемый файл. Кроме того, при приостановке процесс ping.exe остается в проводнике процессов до тех пор, пока ему не будет разрешено завершить работу. в то время как пауза, все его потоки входят Wait:Executive, и, кажется, не пульсируют периодически. Захватывающий.
Фрэнк Томас,
2
Другой трюк, который мне нравится использовать, - пометить текст мышью (у меня всегда включен режим быстрого редактирования). Это останавливает вывод (и, следовательно, выполнение, так как программа, которая пишет в stdout, ожидает, пока не будет записан поток).
тыс
1

Вы можете использовать команду «больше». Хотя это не совсем то, что вы ищете, оно ограничит вывод экрана на страницу.

Ропарш Калия
источник
1
Это лучшее решение, потому что приостановка вывода в нужный момент практически невозможна, учитывая скорость, с которой обычно производится вывод. Для пояснения вы должны использовать канал после вашей команды, а затем БОЛЬШЕ. Например, NETSH HTTP SHOW SSLCERT | БОЛЬШЕ
Винсент
Windows не имеет «более» родной
KumarAnkit
1

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

Нажатие ctrl+z повесит программу. (Сообщение: остановлено)

Чтобы запустить его снова в своем предыдущем состоянии, как если бы оно было приостановлено:

Тип fg

Или для многократного использования: program_name_previously_ctrl + z_stopped `fg

NVRM
источник
0

Здесь нужно добавить еще пару методов, если мы тщательно проработаем:

1) В дополнение к кнопке Pause / Break вы можете дублировать ее функциональность, используя «CTRL + C».

Это заставит сценарий cmd приостановить работу и спросить вас, хотите ли вы прекратить его. Когда вы закончите поиск, вы можете выбрать «НЕТ» (или, возможно, «да», если вам это подходит), и он продолжится (или выйдите, если вы выбрали «Да»).

2) Вы также можете сделать паузу с помощью мыши, щелкнув курсор мыши в окне, чтобы выбрать текст в терминале CMD.

Возможно, вы замечали этот приостановленный вывод в прошлом и думали, что вывод будет задержан, однако, когда сценарии выполняются в интерактивных экземплярах cmd, вы фактически приостанавливаете выполнение кода (так же, как с «Pause / Break» и «CTRL». + С "Методы".

Однако, как только окно потеряет фокус, или вы нажмете, чтобы отменить приостановку, выполнение кода продолжится, и у вас не будет возможности завершить код таким способом.

Бен Персоник
источник
Вау, ребята, вы молоды. Никогда не использовал последовательные терминалы? Попробуйте Ctrl-s / Ctrl-Q
NetScr1be
Программное обеспечение эмулятора терминала обычно реализует поддержку XOFF / XON в качестве базовой функции. Обычно это системная консоль на современных машинах Unix и Linux, а также эмуляторы графического интерфейса, такие как xterm и консоль Win32.
NetScr1be
0

В системах Windows, если на экране вывода включен режим быстрого редактирования (по конфигурации), просто нажмите на экран и выберите любую часть экрана. Программа остановит выполнение, пока вы не нажмете правой кнопкой мыши на экране, чтобы отменить выбор. Экран может потерять фокус и будет зависать до тех пор, пока вы не вернетесь и не нажмете на него правой кнопкой мыши. Помните, что любое содержимое буфера обмена, если оно есть, можно перевернуть на этом экране, если щелкнуть по нему правой кнопкой мыши.

agcala
источник