Czy istnieje skrót klawiaturowy, aby zatrzymać wyjście okna CMD podczas jego działania?


14

Jestem w trakcie uruchamiania skryptu wsadowego, który zajmuje naprawdę dużo czasu i którego wyniki są zawrotne w nieczytelnym tempie. Czy istnieje skrót klawiaturowy, który pozwala zatrzymać konsolę CMD w miejscu, w którym aktualnie ma się zatrzymać i odczytać dane wyjściowe, a następnie ponownie uruchomić go z tego samego miejsca?

wprowadź opis zdjęcia tutaj


5
Zawsze jest CTRL-S. Następnie CTRL-Q, aby ponownie uruchomić.
— BillP3rd

Możesz chwycić pole przewijania i przesunąć je w górę, co skutecznie wstrzyma przewijanie. Następnie możesz nacisnąć klawisz strzałki w dół, aby przejść do dolnej części bufora.
— Burhan Khalid

Czy nie jest to zamierzonym celem klawisza „Scroll Lock”?
— TOOGAM

Odpowiedzi:


5

Nie widziałem tego w innych odpowiedziach.

Uważam, że sekwencyjne sekwencje kontrolne „Ctrl-S” XOFF i „Ctrl-Q” XON są kluczowymi sekwencjami mającymi rozwiązać problem.

Proszę zobaczyć;

XON / XOFF


1
Zmieniłem to na najlepszą odpowiedź z kilku powodów. Z badań wynika, że ​​klawisz Pauza / Przerwa samodzielnie zatrzymuje wyjście, ale nie wykonanie, o którym druga odpowiedź nie wspomina. Aby zatrzymać wykonywanie, należy użyć Ctrl + Pause / Break, a na większości klawiatur jest to nieco bardziej kłopotliwe niż Ctrl + S i Ctrl + Q (można to zrobić tylko lewą ręką). To powiedziawszy, Ctrl + Pauza / Przerwa ma tę zaletę, że nie musisz pamiętać dwóch dodatkowych skrótów klawiszowych, więc obie odpowiedzi są dobre, chciałbym tylko, aby ta uzyskała pozytywne opinie.
— Hashim

Zauważ, że chociaż ta odpowiedź stanowi źródło pytania dla systemu Unix / Linux, skróty klawiszowe działają dobrze w CMD.exe, przynajmniej w moim systemie operacyjnym Windows 7.
— Hashim

1
@Hashim, dziękuję za udostępnienie swoich badań. Ponieważ konkretnie pytałeś, jak wstrzymać wyjście , nie rozważałem (ani nie testowałem) tej możliwości, ale dobrze jest się tego nauczyć. (Upvoted)
— Marc.2377

17

Czy twoja klawiatura zawiera Pause/Breakklucz? Służyłby do tego dobrze. Oto jak to wygląda, a przynajmniej przywykło do:

Pause Break Key z Wikipedii

Jako interesujący bonus, ten klucz może być również używany podczas testu POST (Power On Self Test, który uruchamia się, gdy komputer jest włączony) do odczytu danych wyjściowych z systemu BIOS.

Jeśli nie masz tego klucza, kombinacja Control+ NumLockpowinna działać tak samo, a według Wikipedii istnieją inne opcje w zależności od producenta .

Aby wznowić wykonywanie, naciśnij Enter.


Uwaga na niektórych klawiaturach możesz mieć określony klawisz blokady przewijania (zwykle oznaczony ScrLk), który może służyć do podobnego celu.
— Burhan Khalid

@BurhanKhalid Cóż, czytam na tym linku, że wstrzymuje on wyjście , ale nie wykonanie , i ten efekt wydaje się nie dotyczyć konsoli MS Windows ... ale fajnie jest wiedzieć
— Marc.2377

1
W przypadku ping wydaje się, że zatrzymuje wykonywanie. to bardzo dziwne, ponieważ ping jest dyskretnym plikiem wykonywalnym. dodatkowo po wstrzymaniu proces ping.exe pozostaje w Eksploratorze procesów, dopóki nie zostanie zakończony. gdy jest zatrzymany, wszystkie jego wątki wchodzą Wait:Executivei nie wydają się pulsować okresowo. Fascynujący.
— Frank Thomas

2
Inną sztuczką, którą lubię, jest zaznaczanie tekstu myszką (zawsze mam włączony tryb szybkiego edytowania). To zatrzymuje wyjście (a zatem i wykonanie, ponieważ program, który zapisuje na standardowe wyjście, czeka również na zapis strumienia).
— ths

1

Możesz użyć polecenia „więcej”. Chociaż nie jest to dokładnie to, czego szukasz, ograniczy wyświetlanie strony przez stronę.


1
Jest to najlepsze rozwiązanie, ponieważ wstrzymanie wyjścia w odpowiednim momencie jest prawie niemożliwe, biorąc pod uwagę szybkość, z jaką generowane jest wyjście. Dla wyjaśnienia musisz użyć potoku po swoim poleceniu, a następnie WIĘCEJ. Na przykład NETSH HTTP SHOW SSLCERT | WIĘCEJ
— Vincent

Windows nie ma „więcej” natywnego
— KumarAnkit

1

Dodając jeszcze jeden użyteczny sposób dla powłok Linuksa . (Ale może też ok w Windowsie, spróbuj!)

Naciśnięcie ctrl+z spowoduje zawieszenie programu. (Wiadomość: zatrzymana)

Aby uruchomić go ponownie w poprzednim stanie, tak jakby został zatrzymany:

Rodzaj fg

Lub do wielokrotnego użytku: nazwa_programu_poprzednio_ctrl + z_stopped `fg


0

Istnieje kilka innych metod do dodania, jeśli jesteśmy dokładni:

1) Oprócz przycisku Pause / Break możesz powielić jego funkcjonalność za pomocą „CTRL + C”.

Spowoduje to, że skrypt cmd zatrzyma się i zapyta, czy chcesz go zakończyć. Gdy skończysz szukać, możesz wybrać „NIE” (lub może tak, jeśli ci to odpowiada) i będzie kontynuować (lub wyjdź, jeśli wybierzesz tak).

2) Możesz również przerwać korzystanie z myszy, klikając kursor myszy w oknie, aby wybrać tekst z terminala CMD.

Być może zauważyłeś to wstrzymywanie danych wyjściowych w przeszłości i uważałeś, że tylko dane wyjściowe są opóźnione, jednak gdy skrypty działają w interaktywnych instancjach cmd, w rzeczywistości wstrzymujesz wykonywanie kodu (tak samo jak w przypadku „Pause / Break” i „CTRL Metody + C).

Jednak gdy okno przestanie być aktywne lub klikniesz, aby cofnąć wstrzymanie, wykonanie kodu będzie kontynuowane i nie będziesz mieć możliwości zakończenia kodu w ten sposób.


Wow, jesteście młodzi. Nigdy nie korzystałeś z terminali szeregowych? Spróbuj Ctrl-s / Ctrl-Q
— NetScr1be

Oprogramowanie emulatora terminali zasadniczo implementuje obsługę XOFF / XON jako podstawową funkcję. Zwykle obejmuje to konsolę systemową na nowoczesnych komputerach z systemami Unix i Linux, a także emulatory GUI, takie jak xterm i konsola Win32.
— NetScr1be,

0

W systemach Windows, jeśli ekran wyjściowy ma włączony tryb szybkiej edycji (wg konfiguracji), po prostu kliknij ekran i wybierz dowolną część ekranu. Program przerwie wykonywanie do momentu kliknięcia prawym przyciskiem myszy na ekranie, aby odznaczyć. Ekran może stracić ostrość i będzie zawieszany, dopóki nie wrócisz i nie klikniesz go prawym przyciskiem myszy. Uważaj, aby dowolną zawartość Schowka, jeśli taka istnieje, można odwrócić na tym ekranie, klikając go prawym przyciskiem myszy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.