Чи є комбінація клавіш для призупинення виводу вікна CMD під час роботи?


14

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

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


5
Завжди є CTRL-S. Потім CTRL-Q перезапустити.
BillP3rd

Ви можете захопити поле прокрутки і перемістити його вгору, це ефективно призупинить прокрутку. Потім можна натиснути клавішу зі стрілкою вниз, щоб перейти до нижньої частини буфера.
Бурхан Халід

Це не за призначенням клавіші "Блокування прокрутки"?
TOOGAM

Відповіді:


5

Я не бачив цього в інших відповідях.

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

Будь ласка, дивіться;

XON / XOFF


1
Я змінив це на найкращу відповідь з кількох причин. З дослідження клавіша "Пауза / Перерва" на власній зупинці виведення, але не виконання, про що інша відповідь не згадує. Для зупинки виконання потрібно використовувати Ctrl + Пауза / Перерва, і це трохи більш громіздко набирати на більшості клавіатур, ніж Ctrl + S і Ctrl + Q (можна робити лише лівою рукою). Однак, Ctrl + Пауза / Перерва має перевагу в тому, що вам не потрібно запам’ятовувати дві додаткові клавіатури, тому обидві відповіді хороші, я просто хотів би побачити, як цей отримує нагороди, які він заслуговує.
Хашим

Зауважте, що хоча ця відповідь є джерелом запитання про Unix / Linux, клавіатурні зв'язки добре працюють на CMD.exe, принаймні, в моїй ОС Windows 7.
Хашим

1
@Hashim, дякую за те, що ви поділилися своїми дослідженнями. Оскільки ви спеціально запитали, як призупинити вихід , я не розглядав (ні тестував) цю можливість, але це приємно дізнатися. (Оновлено)
березня

17

Чи містить клавіатура Pause/Breakклавішу? Це було б добре для цього. Ось як це виглядає, або принаймні звик:

Пауза перерви з Вікіпедії

Як цікавий бонус, цю клавішу можна також використовувати під час POST (Power On Self Test, яка запускається при включенні комп'ютера) для читання вихідних даних з BIOS.

Якщо у вас немає цього ключа, комбінація Control+ NumLockповинна працювати точно так само, і є інші варіанти залежно від вашого виробника, повідомляє Wikipedia .

Щоб відновити виконання, натисніть Enter.


Зауважте, що на деяких клавіатурах у вас може бути певна клавіша блокування прокрутки (як правило, позначена ScrLk), яка може слугувати подібній меті.
Бурхан Халід

@BurhanKhalid Добре, я читав на цьому посиланні, що він призупиняє вихід , але не виконання , і цей ефект, схоже, не стосується консолі MS Windows ... але все-таки здорово знати
Marc.2377

1
З допомогою ping, схоже, зупиняється виконання. це дуже дивно, оскільки ping - дискретний виконуваний файл. крім того, коли призупинено, процес ping.exe залишається в провіднику процесів, поки не буде дозволено його завершити. під час паузи всі її потоки входять Wait:Executiveі не здаються періодично пульсуючими. Захоплююче.
Френк Томас

2
Ще один трюк, який мені подобається використовувати, - позначити текст мишею (у мене завжди включений режим швидкого редагування). Це зупиняє вихід (і, отже, виконання, оскільки програма, яка пише в stdout, чекає, поки не буде записаний потік).
тис

1

Можна скористатися командою "більше". Хоча це не саме те, що ви шукаєте, це обмежить вихід екрана сторінкою.


1
Це найкраще рішення, тому що призупинити вихід у потрібний момент майже неможливо, враховуючи швидкість, з якою зазвичай виробляється вихід. Для уточнення вам потрібно використовувати трубу після вашої команди, а потім БІЛЬШЕ. Наприклад, NETSH HTTP SHOW SSLCERT | БІЛЬШЕ
Вінсент

У Windows немає "більше" рідного
KumarAnkit

1

Додавання ще одного корисного способу для оболонок Linux . (Але, можливо, добре і у Windows, спробуйте!)

Якщо натиснути клавішу ctrl+,z ви вимкнете програму. (Повідомлення: зупинено)

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

Тип fg

Або для багаторазового використання: program_name_previously_ctrl + z_stopped `fg


0

Тут є кілька інших способів додати, якщо ми ретельно:

1) Окрім кнопки "Пауза / Перерва", ви можете дублювати її функціональність, використовуючи "CTRL + C".

Це спричинить призупинення сценарію cmd і запитає, чи хочете ви його скасувати. Після того, як ви закінчите шукати, ви можете вибрати "НІ" (або, можливо, так, якщо воно вам підходить), і воно продовжиться (Або вийдіть, якщо ви вибрали так).

2) ТАКОЖ можна призупинити використання миші, натиснувши курсор миші у вікні, щоб вибрати текст із терміналу CMD.

Ви, можливо, помічали цей паузальний вихід у минулому і думали, що тільки вихід буде відкладений, однак, коли сценарії виконуються в інтерактивних екземплярах cmd, ви фактично призупиняєте виконання коду (те саме, що і з "Пауза / Перерва" та "CTRL" + C "Методи).

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


Нічого собі, хлопці, молоді. Ніколи не використовували серійні термінали? Спробуйте Ctrl-s / Ctrl-Q
NetScr1be

Програмне забезпечення емулятора терміналів, як правило, реалізує підтримку XOFF / XON як основну функцію. Це, як правило, включає системну консоль на сучасних машинах Unix та Linux, а також емулятори GUI, такі як xterm та консоль Win32.
NetScr1be

0

У системах Windows, якщо на екрані виводу увімкнено режим швидкого редагування (за допомогою конфігурації), просто натисніть на екран і виберіть будь-яку частину екрана. Програма зупинить виконання, доки ви не знімете вибір правою кнопкою миші на екрані. Екран може втратити фокус, і він буде продовжувати застигати, поки ви не повернетесь і натисніть на нього правою кнопкою миші. Будьте уважні, що будь-який вміст буфера обміну, якщо він є, може бути перевернутий цей екран, коли ви клацніть правою кнопкою миші на ньому.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.