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


14

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

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


5
Там всегда CTRL-S. Затем CTRL-Q для перезапуска.
BillP3rd

Вы можете захватить поле прокрутки и переместить его вверх, это эффективно приостановит прокрутку. Затем вы можете нажать клавишу со стрелкой вниз, чтобы перейти к нижней части буфера.
Бурхан Халид

Разве это не целевое назначение клавиши «Scroll Lock»?
ТООГАМ

Ответы:


5

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

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

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

XON / XOFF


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.


Обратите внимание, что на некоторых клавиатурах у вас может быть специальная клавиша блокировки прокрутки (обычно отмеченная 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


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, если на экране вывода включен режим быстрого редактирования (по конфигурации), просто нажмите на экран и выберите любую часть экрана. Программа остановит выполнение, пока вы не нажмете правой кнопкой мыши на экране, чтобы отменить выбор. Экран может потерять фокус и будет зависать до тех пор, пока вы не вернетесь и не нажмете на него правой кнопкой мыши. Помните, что любое содержимое буфера обмена, если оно есть, можно перевернуть на этом экране, если щелкнуть по нему правой кнопкой мыши.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.