2012-12-06 23 views
91

Mam dwa pliki wsadowe, jeden z nich wykonuje inną, tjwsadowe: Jak zostawić otwarte okno konsoli

  1. "Moja Batch File"> 2. "jakiś inny plik wsadowy"

Utworzono skrót do pierwszego pliku wsadowego i zmieniono jego właściwości, aby wywoływać go w następujący sposób.

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

Co chcę zrobić Chcę okno konsoli być otwarte po wykonaniu pliku wsadowego jest skończona. Teraz po prostu się zamyka, próbował grać wokół flag cmd, bez rezultatu.

Platforma: Windows7


UPDATE 1

modyfikacja struktury, prosty przykład jak to nie działa tak dobrze, Tylko jeden plik wsadowy czyli nie ma 2. " Niektóre inne pliki wsadowe " Jedyny plik wsadowy zawiera coś podobnego

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

UPDATE 2

Ten sam skrót, który jest wywoływany z poziomu Eksploratora nie zamyka okno konsoli. Ale zamyka okno konsoli, gdy skrót jest wywoływana z przypięty pozycji na pasku zadań

pomysłów, jak zachować otworzyć okno konsoli?

+0

Przypuszczam chcesz 'My Batch file' trzymać się? –

+0

Tak, dobrze, dobrze – deimus

+0

"Gorąco, aby opuścić okno konsoli otwartego pliku wsadowego", jest pytane i udzielane w sposób bardziej przejrzysty tutaj: http://superuser.com/questions/175515/is-there-a-way-in -windows-7-do-tworzenia-skrótu-do-polecenia-konsoli-app-aplikacji – oberlies

Odpowiedz

109

Jeśli to naprawdę robi cały plik wsadowy, usuń cmd /K i dodaj PAUSE.

start /B /LOW /WAIT make package 
PAUSE 

Następnie wystarczy wskazać skrót do "My Batch File.bat" ... nie ma potrzeby, aby uruchomić go z CMD /K.

UPDATE

Ach, kilka nowych informacji ... starasz się zrobić to z przypięty skrótu na pasku zadań.

Znalazłem to, Adding Batch Files to Windows 7 Taskbar like the Vista/XP Quick Launch, z odpowiednią częścią poniżej.

  1. Najpierw przypiąć skrót do CMD.EXE do paska zadań, naciskając przycisk Start, a następnie wpisz „cmd” w polu wyszukiwania, kliknij prawym przyciskiem wynik i wybierz „Przypnij do paska zadań”.
  2. Kliknij prawym przyciskiem myszy skrót na pasku zadań.
  3. Zobaczysz listę zawierającą "Command Prompt" i "Odepnij ten program z paska zadań".
  4. Kliknij prawym przyciskiem myszy ikonę dla CMD.EXE i wybierz opcję Properties.
  5. W polu docelowym przejdź na koniec "%SystemRoot%\system32\cmd.exe" i wpisz " /C " oraz ścieżkę i nazwę pliku wsadowego.

Dla swoich celów, możesz:

  1. Zastosowanie /C i umieścić PAUSE na końcu pliku wsadowego.

    LUB

  2. Zmiana linii poleceń użyć /K i wyjąć PAUSE z pliku wsadowego.
+0

Już to zrobiłem, w zasadzie moje pytanie nie brzmi jak wywołać plik wsadowy anohter ... – deimus

+0

Następnie potrzebujemy aby zobaczyć zawartość obu plików wsadowych. – aphoria

+0

Proszę zobaczyć udpated pytanie – deimus

4

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

pause >nul

+3

brak wyniku, nadal zamyka się automatycznie – deimus

+0

Wygląda na to, że jest zamykany wcześnie, może błąd w skrypcie. Spróbuj otworzyć wiersz polecenia cmd i uruchom go stamtąd, a następnie sprawdź, czy są jakieś błędy. –

+0

Brak błędów, zobacz zaktualizowane pytanie – deimus

11

Pod tutaj:

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

Spójrz co robisz:

  1. (cmd/K) Uruchom a NOWA instancja cmd.
  2. (& pauza) Wstrzymaj wystąpienie cmd CURRENT.

Jak rozwiązać problem? dobrze, używając poprawnej składni, załączając argument dla nowej instancji CMD:

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

Dla pozostawiając okno konsoli otworzyć trzeba tylko dodać do wiersza poleceń ostatni w pliku wsadowym:

' & pause' 
+0

Nie działa na Win7. Jesteś pewny? –

+0

@PatrickHillert tak, działało na Win7 dla mnie – UmbySlipKnot

6

Właśnie napisałem ostatnią linię jako Pause to działało dobrze zarówno z .bat i .cmd. Zostanie wyświetlony komunikat "Naciśnij dowolny klawisz, aby kontynuować".

+0

To jest poprawna odpowiedź! Powinien być wybrany jako najlepszy. –

-5

po prostu naciśnij enter i rodzaj Pauza i działa dobrze

1

Wystarczy umieścić pause command w ostatniej linii pliku wsadowym:

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

da ci coś takiego jak wyjście:

Hej, po prostu wykonuję dla ciebie pracę.

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

Uwaga: Stosując @echo pozwala na wyjście polecenia przed są zadrukowane.

-1

umieścić na końcu będzie ponownie otworzyć konsola

start cmd 
+0

To nie rozwiązuje problemu, użytkownik chce zachować okno otwarte, a nie ponownie otworzyć stare. – Adam

Powiązane problemy