Wiersz polecenia Windows zawiesza się na fokusie [duplikat]

18

Mam kilka skryptów w języku Python, które nie zawierają poleceń wstrzymania ani monitów o wprowadzanie danych przez użytkownika, jednak stwierdzam, że po zmianie fokusa okna na okno cmd systemu Windows dane wyjściowe będą się zawieszać, dopóki nie naciśniesz „Enter”.

Czy jest tego znany powód? Czy powinienem włączyć / wyłączyć ustawienie w opcjach cmd, aby tego uniknąć?

Przeszukanie mojej sprawy wciąż przywołuje przypadki ludzi, którzy chcą pauzy w kodzie - czego nie robię.

Markus
źródło
BTW, możesz głosować na UserVoice, aby zmienić to zachowanie: wpdev.uservoice.com/forums/…
Carl Walsh

Odpowiedzi:

25

Jak wybierasz / skupiasz to okno? Jeśli po prostu Alt+ Tabdo niego lub klikniesz jego pasek tytułu, przewijanie danych wyjściowych nie powinno zostać wstrzymane. Domyślam się, że masz włączony tryb QuickEdit (kliknij prawym przyciskiem myszy pasek tytułu okna wiersza polecenia i wybierz Właściwości ) i klikasz myszą wewnątrz okna, w ten sposób omyłkowo zaznaczając tekst i powodując wstrzymanie programu.

1

Karan
źródło
Dzięki Karan. Tak, użyłem QuickEdit, aby wybrać tekst z wyników moich skryptów. Wyłączenie tego powoduje obejście pauzy. Szkoda, że ​​okno cmd nie pozwala na zaznaczanie tekstu bez wstrzymywania wydruku.
Markus
Czy nie uważasz, że trudno byłoby wybrać tekst, który szybko przewija się poza ekran?
Karan
Myślę, że to zależy od tego, jak „szybko” przewija się poza ekran.
Markus
1
Powód, dla którego zawiesił się, jest prawdopodobnie podyktowany pewnymi ograniczeniami starego oprogramowania, nie dlatego, że jest to wygodne dla użytkownika. W przypadku nowoczesnych aplikacji proces będzie kontynuowany poniżej zaznaczenia i wyświetli pasek przewijania.
LessQuesar
1
I to jest niesamowite, że Windows nie zapewnia łatwego sposobu, aby zapobiec włączeniu tej opcji przez cmd skryptu wsadowego bez robienia czegoś „hacky” ... to trochę głupie, jak Windows przedstawia opcje zaufania użytkownikowi końcowemu do wyłączenia tę opcję w cmd, robiąc coś „hacky” lub implementując własny GUI, aby wysłać stdout / err, aby wyświetlić bez tego problemu.
searchengine27