Чи є комбінація клавіш для призупинення виводу вікна 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.