Jak wyłączyć automatyczne zamykanie wiersza poleceń po zakończeniu?


18

Wiem, że były pewne sztuczki ze starszymi wersjami Windows, aby to osiągnąć, ale nie jestem pewien w Windows 7.

Jeśli miałem oprogramowanie, które wykonuje polecenie z przełącznikami, co powoduje szybkie otwieranie i zamykanie okna cmd.exe, jak mogę ponownie skonfigurować wiersz polecenia, aby NIE zamykał się automatycznie po zakończeniu zadania.

Sztuczka polega na tym, że wykonywane polecenie jest rzeczywiście plikiem wsadowym, zawiera na końcu instrukcję pauzy, ale sposób, w jaki program próbuje wykonać polecenie, kończy się niepowodzeniem. Ponieważ zamyka się tak szybko, nie wiemy, jaki błąd jest zwracany, ponieważ zamyka się tak szybko.


Dobre pytanie, po cichu też żałowałem, że o tym nie wiem, ponieważ czasami pojawiają się łaty do gier / oprogramowania .BAT zamykają się po wykonaniu instrukcji bez wstrzymywania i wyświetlania wykonanych poleceń dla użytkownika końcowego.
Boris_yo

1
Dlaczego nie otworzyć okna poleceń, cd do tego katalogu i uruchomić stamtąd stamtąd? Działałoby to w tym samym nie zamykającym się oknie cmd, które pozostawało otwarte po zakończeniu partii. To może dać ci wskazówki, które pomogą ci w debugowaniu.
jdh


Dzięki slhck, wskazanie mi tej lokalizacji wygląda jak najbliższa możliwość osiągnięcia tego, co chcę, w rejestrze batfile / cmdfile.
Mity

Odpowiedzi:


8

Zamiast uruchamiać ten .batplik bezpośrednio z Eksploratora lub jakiejkolwiek innej używanej metody, ręcznie uruchom cmd.exe(w razie potrzeby z podwyższonymi uprawnieniami), a następnie uruchom .batplik z tego miejsca. Następnie po zakończeniu jego wykonywania nadal zobaczysz wszystkie dane wyjściowe ... tak jak w starych, dobrych czasach DOS. :)


Naciśnij start i wpisz cmdi naciśnij enter, uruchomi się wiersz polecenia. Po prostu przeciągnij i upuść to, co musisz uruchomić (skrypt Python lub .exe) w oknach cmd i naciśnij enter.
JinSnow

6

W pliku .bat użyj pausepolecenia. Zapobiegnie to zamknięciu pliku .bat.

Na przykład jest to mój plik nietoperza, którego używam do uruchomienia usługi MySQL na moim komputerze:

net start MySQL
pause

Uwaga: W systemie Windows 7 uruchamiam ten plik .bat od nazwy Administratora. Aby to zrobić, kliknij prawym przyciskiem myszy plik .bat i wybierz z menu rozwijanego opcję „Rozpocznij od nazwy administratora”.



1

W skryptach .bat pozostawia się „wyjście” na końcu skryptu, aby pozostawić otwarte okno poleceń.

Okno poleceń otwierane przez skrypt zawsze zamyka się na końcu skryptu, ponieważ jest zależne od skryptu. Samo otwarcie okna i uruchomienie skryptu nie powoduje zamknięcia okna, chyba że podasz polecenie „exit” na końcu skryptu, ponieważ okno nie jest zależne od skryptu.

Nie wydaje się, że istnieje sposób, aby zapobiec zamknięciu okna zależnego od skryptu po zakończeniu skryptu w systemie Windows 7. Możliwe jest jednak, że komunikaty o błędach zostaną nagrane gdzie indziej. Czy program ma plik dziennika? Czy są wpisy w dziennikach systemu Windows?


0
pause>nul

to powinno działać.


2
Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie. „Sztuczka polega na tym, że wykonywane polecenie jest rzeczywiście plikiem wsadowym, na końcu zawiera instrukcję pauzy
DavidPostill

0

Naciśnij starti wpisz cmdi naciśnij enter, uruchomi się wiersz polecenia. Po prostu przeciągnij i upuść to, co musisz uruchomić (skrypt Python, .exe ...) do okien cmd i naciśnij klawisz Enter. (Jeśli chcesz uruchomić cmd jako administrator, znajdź cmd w menu Start, kliknij go prawym przyciskiem myszy, wybierz run as admin) (Działa w systemie Windows 7)


Nie zamieszczaj tej samej odpowiedzi na wiele pytań. Jeśli ta sama informacja naprawdę odpowiada na oba pytania, to jedno pytanie (zwykle nowsze) powinno zostać zamknięte jako duplikat drugiego. Możesz to wskazać, głosując, aby zamknąć go jako duplikat lub, jeśli nie masz wystarczającej reputacji, podnieść flagę wskazującą, że jest to duplikat. W przeciwnym razie dostosuj swoją odpowiedź na to pytanie i nie wklejaj tej samej odpowiedzi w wielu miejscach.
DavidPostill

0

Przez jakiś czas miałem ten problem i wreszcie zdałem sobie sprawę, co się dzieje.

Kiedy uruchomisz zadanie za pomocą harmonogramu zadań i jest to plik nietoperza, otworzy okno cmd do C: \ WINDOWS \ system32, a NIE gdzie znajduje się plik nietoperza. Dlaczego? Nie mam pojęcia! Musiałem więc dodać katalog z cd do pliku bat.

Przykład poniżej:

cd c: \ blahblahblah

startmyprogram.exe


Twoja odpowiedź powoduje wiele zamieszania i nie jesteś w stanie ustalić przyczyny problemu, na który natknął się OP. Lepiej przekieruj ten link superuser.com/help/how-to-answer , pomoże ci podczas odpowiadania.
Rajesh S
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.