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.