Jakie polecenie mogę umieścić na końcu pliku wsadowego, aby zapobiec automatycznemu zamknięciu konsoli po wykonaniu pliku?
509
Jakie polecenie mogę umieścić na końcu pliku wsadowego, aby zapobiec automatycznemu zamknięciu konsoli po wykonaniu pliku?
Odpowiedzi:
W plikach wsadowych Windows / DOS:
To ładna
"Press any key to continue . . . "
wiadomośćLub, jeśli nie chcesz
"Press any key to continue . . ."
wiadomości, zrób to zamiast tego:źródło
Zależy od dokładnego pytania!
Zwykle
pause
wykonuje to zadanie w pliku .bat .Jeśli chcesz, aby cmd.exe nie zamykał się, aby móc pisać dalej, użyj
cmd /k
polecenia na końcu pliku.źródło
cmd /k
zamiast tego umieść je przed poleceniem.& cmd /k
nie zadziała.Po prostu poczułem potrzebę wyjaśnienia, co
/k
robi (ze strony Windows):Więc
cmd /k
bez polecenia kontynuacji na końcu pliku nietoperza po prostu pozostawicmd.exe
otwarte okno do dalszego użycia.Z drugiej strony
pause
na końcu pliku wsadowego po prostu wstrzyma proces i zakończy sięcmd.exe
po pierwszym naciśnięciu przyciskuźródło
Poniższy sposób posiadania poleceń w pliku wsadowym otworzy nowe okna wiersza polecenia, a nowe okna nie wyjdą automatycznie.
źródło
Jeśli używasz Maven i chcesz pominąć pisanie i uniemożliwić zamknięcie konsoli, aby zobaczyć wynik, musisz użyć
CALL
polecenia w skrypcie, oprócz samej „czystej instalacji mvn”.W ten sposób zamkniesz konsolę
W ten sposób konsola pozostanie otwarta
Jeśli nie użyjesz
CALL
polecenia, żadna z przeszłych przykładów nie będzie działać.źródło
call <myCommand>
rozwiązało ten problem: Mój monit przestał się zamykać po pierwszej egzekucjiDodaj
cmd.exe
jako nowy wiersz poniżej kodu, który chcesz wykonać:źródło
python script.py %1 && cmd
moim sposobem jest napisanie rzeczywistej partii (mówiąc „foo.bat”), aby zakończyć zadanie; następnie utwórz kolejny plik „start.bat”:
Uważam, że jest to niezwykle przydatne, gdy konfiguruję jednorazowe zmienne środowiskowe.
źródło
cmd /k
(bez żadnego polecenia) umieścić na końcufoo.bat
pliku i uruchomić go. Nie potrzebujesz osobnegostart.bat
pliku.Wywołaj
cmd
na końcu pliku wsadowego.źródło
oprócz
pause
.można użyć. Oczekuje danych wejściowych od użytkownika i zwolni przepływ po naciśnięciu klawisza enter.
lub
który zrobi to samo, chyba że nic z danych wprowadzonych przez użytkownika nie zostanie wyświetlone ani nie pozostanie w historii poleceń.
źródło
Możliwość 1: Po prostu utwórz 2 pliki .bat i napisz do pierwszego:
Plik wsadowy 2 to plik, który nie zostanie zamknięty na końcu. Więc teraz, kiedy otworzysz partię nr 1, rozpocznie się druga i sama cloe. Po 2. zakończeniu nie zamknie się całkowicie (o ile nie umieścisz wyjścia na końcu)
Możliwość 2: Plik wsadowy 1:
Kiedy drugi plik się skończy, przejdzie do pliku 1 i wyśle resztę. Dzięki temu możesz nawet tworzyć programy obsługi błędów. Jeśli nr 1 ulega awarii, przechodzi w nr 2 i wyświetla go
źródło
Ten mały hack prosi użytkownika o wpisanie klucza i zapisuje go w zmiennej% exitkey% (ta zmienna może być nazywana, co tylko zechcesz).
Uwaga: spacja po „=” jest bardzo ważna
źródło
lub
źródło
Wiem, że się spóźniam, ale moim ulubionym sposobem jest:
W ten sposób użytkownik nie może wyjść za pomocą enter.
źródło
Miałem problemy z odpowiedziami tutaj, więc wpadłem na to, co działa dla mnie (TM):
źródło
Można to zrobić na dwa sposoby, zależnie od przypadku użycia
1) Jeśli chcesz, aby polecenie cmd systemu Windows pozostało otwarte, abyś mógł zobaczyć wynik wykonania i zamknąć go później; posługiwać się
2) jeśli chcesz, aby polecenie cmd systemu Windows pozostało otwarte i pozwoliło na wykonanie niektórych poleceń po słowie; posługiwać się
źródło
Łatwo, dodaj cmd do ostatniej linii nietoperza, ALE! jeśli zresetujesz lub wyczyścisz ścieżkę systemową, musisz uruchomić cmd pełną ścieżką, na przykład:
Na przykład mam plik nietoperza, aby zresetować jdk do starej wersji w następujący sposób:
ponieważ zresetowałem ścieżkę systemową, muszę uruchomić cmd z pełną ścieżką, inaczej system nie może znaleźć cmd.exe, uruchomienie cmd nie powiedzie się i po prostu zamknę okno, a nie będzie widać błędu msg .
źródło