Batch-Dateien: So lassen Sie das Konsolenfenster geöffnet

105

Ich habe zwei Batch-Dateien, von denen eine eine andere ausführt, dh

  1. "Meine Batchdatei"> 2. "Eine andere Batchdatei"

Ich habe eine Verknüpfung der ersten Batchdatei erstellt und ihre Eigenschaften so bearbeitet, dass sie wie folgt aufgerufen werden.

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

Was ich tun möchte Ich möchte, dass das Konsolenfenster geöffnet wird, nachdem die Ausführung der Batchdatei beendet ist. Jetzt schließt es einfach, versucht um die cmd-Flags herumzuspielen, kein Ergebnis.

Plattform: Windows7


UPDATE 1

Geändert die Struktur, das einfache Beispiel wie dieses funktioniert nicht so gut, nur eine Batch-Datei, dh es gibt keine 2. "Einige andere Batch-Datei" Die einzige Batch-Datei enthält etw wie diese

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

UPDATE 2

Dieselbe Verknüpfung, die vom Explorer aufgerufen wird, schließt das Konsolenfenster nicht. Das Konsolenfenster wird jedoch geschlossen, wenn die Verknüpfung über das angeheftete Element in der Taskleiste aufgerufen wird

Irgendwelche Ideen, wie man das Konsolenfenster offen hält?

Deimus
quelle
Ich nehme an, du willst, dass die hier My Batch Filebleiben?
Marc B
„Hot das Konsolenfenster einer Batch - Datei offen lassen“ wird gestellt und beantwortet Weg deutlicher hier: superuser.com/questions/175515/...
Oberlies

Antworten:

126

Wenn das wirklich alles ist, was die Batch-Datei tut, entfernen Sie die cmd /Kund fügen Sie sie hinzu PAUSE.

start /B /LOW /WAIT make package
PAUSE

Zeigen Sie dann einfach mit Ihrer Verknüpfung auf "My Batch File.bat"... Sie müssen sie nicht ausführen CMD /K.

AKTUALISIEREN

Ah, einige neue Informationen ... Sie versuchen es über eine angeheftete Verknüpfung in der Taskleiste.

Ich fand dies: Hinzufügen von Stapeldateien zur Windows 7-Taskleiste wie Vista / XP Quick Launch mit dem entsprechenden Teil unten.

  1. Stecken Sie zuerst eine Verknüpfung für CMD.EXEdie Taskleiste fest, indem Sie auf die Startschaltfläche klicken, geben Sie dann "cmd" in das Suchfeld ein, klicken Sie mit der rechten Maustaste auf das Ergebnis und wählen Sie "An Taskleiste anheften".
  2. Klicken Sie mit der rechten Maustaste auf die Verknüpfung in der Taskleiste.
  3. Sie sehen eine Liste mit " Eingabeaufforderung " und " Dieses Programm von der Taskleiste entfernen ".
  4. Klicken Sie mit der rechten Maustaste auf das Symbol für CMD.EXEund wählen Sie Properties.
  5. In der Box für Target, gehen zu Ende "%SystemRoot%\system32\cmd.exe"und die Art " /C "und den Pfad und den Namen der Batchdatei.

Für Ihre Zwecke können Sie entweder:

  1. Verwenden Sie /Cund setzen Sie ein PAUSEam Ende Ihrer Batch-Datei.

    ODER

  2. Ändern Sie die zu verwendende Befehlszeile /Kund entfernen Sie sie PAUSEaus Ihrer Batchdatei.
Aphorie
quelle
Ich habe es bereits getan, im Grunde ist meine Frage nicht, wie man eine andere Batch-Datei
aufruft
Dann müssen wir den Inhalt beider Batch-Dateien sehen.
Aphorie
Bitte sehen Sie die udpated Frage
Deimus
Das gleiche Problem, das Ersetzen von CMD / K funktioniert nicht. Warum wird das Konsolenfenster nicht geschlossen, wenn die Verknüpfung vom Explorer aufgerufen wird?
Deimus
13

Hier:

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

Schauen Sie sich an, was Sie tun:

  1. (cmd / K) Starten Sie eine NEUE cmd-Instanz.
  2. (& pause) Halten Sie die CURRENT- Cmd-Instanz an.

Wie kann ich das Problem beheben? Nun, unter Verwendung der richtigen Syntax, einschließlich des Arguments für die neue CMD-Instanz:

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

Ich habe gerade die letzte Zeile als Pause geschrieben, es hat sowohl mit .bat als auch mit .cmd gut funktioniert. Die Meldung wird auch als "Drücken Sie eine beliebige Taste, um fortzufahren" angezeigt.

Sai
quelle
Das ist die richtige Antwort! Sollte der Top gewählt werden.
Patrick Hillert
5

Geben Sie in die letzte Zeile der Batchdatei, die Sie offen halten möchten, ein

pause >nul

Bali C.
quelle
Klingt so, als würde es vorzeitig geschlossen, möglicherweise ein Fehler im Skript. Versuchen Sie, eine cmd-Eingabeaufforderung zu öffnen und von dort aus auszuführen. Anschließend können Sie feststellen, ob Fehler vorliegen.
Bali C
3

Um das Konsolenfenster geöffnet zu lassen, müssen Sie nur zur letzten Befehlszeile in der Batchdatei hinzufügen:

' & pause'
Umberto
quelle
2

Sie können einfach einen pauseBefehl in die letzte Zeile Ihrer Batch-Datei einfügen:

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

Gibt Ihnen so etwas als Ausgabe:

Hey, ich mache nur etwas Arbeit für dich.

Drücken Sie eine beliebige Taste, um fortzufahren ...

Hinweis: Die Verwendung von @echo verhindert, dass der Befehl ausgegeben wird, bevor die Ausgabe gedruckt wird.

Patrick Hillert
quelle
0
rem Just use "pause" at the end of the batch file.
...
......
.......
pause
David Castro
quelle
-1

Am Ende wird Ihre Konsole wieder geöffnet

start cmd 
Nik
quelle
Dies löst das Problem nicht. Der Benutzer möchte das Fenster offen halten und kein altes erneut öffnen.
Adam
-5

Ich drücke einfach die Eingabetaste und tippe Pause und es funktioniert gut

Jfly 27
quelle