Pliki wsadowe: jak pozostawić otwarte okno konsoli

Mam dwa pliki wsadowe, jeden z nich wykonuje drugi, tzn.

  1. "Mój Plik Wsadowy" > 2. "Jakiś Inny Plik Wsadowy"

Utworzyłem Skrót pierwszego pliku wsadowego i edytowałem jego właściwości, aby wywołać go w następujący sposób.

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

Co chcę zrobić Chcę, aby okno konsoli było otwarte po zakończeniu wykonywania pliku wsadowego. Teraz po prostu się zamyka, próbował bawić się flagami cmd, bez rezultatu.

Platforma : Windows7


UPDATE 1

Zmodyfikowano strukturę, prosty przykład jak ten nie działa tak dobrze, Tylko jeden plik wsadowy tzn. nie ma 2. "Inny Plik Wsadowy" Jedyny plik wsadowy zawiera smth w ten sposób

start /B /LOW /WAIT make package
cmd /K

UPDATE 2

Ten sam skrót wywołany z Eksploratora nie zamyka okna konsoli. ale okno konsoli zamyka się, gdy skrót jest wywoływany z przypiętego elementu na pasek zadań

Jakieś pomysły jak utrzymać otwarte okno konsoli?

Author: FranciscoBouza, 2012-12-06

8 answers

Jeśli to naprawdę wszystko, co robi plik wsadowy, Usuń cmd /K i dodaj PAUSE.

start /B /LOW /WAIT make package
PAUSE

Następnie wskaż skrót na "My Batch File.bat" ... nie trzeba go uruchamiać za pomocą CMD /K.

UPDATE

Jakieś nowe info...próbujesz to zrobić za pomocą przypiętego skrótu na pasku zadań.

Znalazłem to, Dodawanie plików wsadowych do paska zadań systemu Windows 7, takich jak szybkie uruchamianie Vista/XP, z odpowiednią częścią poniżej.

  1. najpierw przypnij Skrót CMD.EXE do pasek zadań naciskając przycisk start, a następnie wpisz " cmd "w polu wyszukiwania, kliknij prawym przyciskiem myszy wynik i wybierz "Pin do paska zadań".
  2. kliknij prawym przyciskiem myszy skrót na pasku zadań.
  3. zobaczysz listę zawierającą " Wiersz polecenia" i " Wypin ten program z paska zadań ".
  4. kliknij prawym przyciskiem myszy ikonę CMD.EXE i wybierz Properties.
  5. w polu Target, przejdź do końca "%SystemRoot%\system32\cmd.exe" i wpisz " /C " oraz ścieżkę i nazwę z serii plik.

Do swoich celów możesz:

  1. Użyj /C i umieść PAUSE na końcu pliku wsadowego.

    Lub

  2. Zmień wiersz poleceń na /K i usuń PAUSE z pliku wsadowego.
 115
Author: aphoria,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-01 01:45:21

Tutaj:

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

Spójrz co robisz:

  1. (cmd /K) Uruchom nową instancję cmd.
  2. (&pauza) Pauza bieżąca instancja cmd.
Jak to rozwiązać? dobrze, używając poprawnej składni, załączając argument dla nowej instancji CMD:
cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"
 11
Author: ElektroStudios,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-06 22:04:12

Napisałem ostatnią linijkę jako pauza to działało dobrze z obydwoma .bat i .cmd. Wyświetli komunikat również jako "naciśnij dowolny klawisz, aby kontynuować".

 6
Author: Sai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 18:37:38

W ostatnim wierszu pliku wsadowego, który chcesz zachować otwarty, umieść

pause >nul

 4
Author: Bali C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-06 15:02:00

Aby pozostawić otwarte okno konsoli, wystarczy dodać do ostatniego wiersza poleceń w pliku wsadowym:

' & pause'
 3
Author: Umberto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-29 15:48:06

Można po prostu umieścić pause polecenie w ostatniej linii pliku wsadowego:

@echo off
echo Hey, I'm just doing some work for you.
pause

Da ci coś takiego jako wyjście:

Hej, pracuję dla Ciebie.

Naciśnij dowolny klawisz, aby kontynuować ...

Notatka: użycie @ echo uniemożliwia wyjście polecenia przed wydrukowaniem wyjścia.

 1
Author: Patrick H.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-31 06:15:08

Umieścić na końcu to ponownie otworzy konsolę

start cmd 
 -1
Author: Nik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-11 21:35:36

Wciskam enter i wpisuję Pause i działa dobrze

 -5
Author: Jfly 27,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-03 11:52:23