it-swarm.com.de

Wie wird das Cmd-Fenster nach der Ausführung der Batchdatei automatisch geschlossen?

Ich führe eine Batchdatei aus, die diese zwei Zeilen hat: 

start C:\Users\Yiwei\Downloads\PuTTY.exe -load "MathCS-labMachine1"
"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Diese Batchdatei wird verwendet, um die Xming-Anwendung und dann die PuTTY-App auszuführen, damit ich SSH in das Computerlabor meiner Universität aufnehmen kann.

Wenn ich dies jedoch ausführen und Xming nicht bereits geöffnet ist, bleibt das Cmd-Fenster nach dem Beenden des PuTTY-Terminals geöffnet. Nur wenn ich Xming bereits ausgeführt habe, wird das Cmd-Fenster geschlossen, wenn ich das PuTTY-Terminal schließe. Ich habe versucht, der letzten Zeile der Batchdatei exit hinzuzufügen, jedoch ohne Erfolg.

54
yiwei

Ändern Sie die Batch-Datei in START beider Programme, anstatt START und CALL eines anderen

start C:\Users\Yiwei\Downloads\PuTTY.exe -load "MathCS-labMachine1"
start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Wenn Sie es so ausführen, bleibt nach dem Starten des Programms kein CMD-Fenster geöffnet.

87
Ahmad

Für die Neulinge: -

  • Normalerweise beenden Sie eine Batch-Datei mit einer Zeile, in der nur exit steht

* Wenn Sie sicherstellen möchten, dass die Datei ausgeführt wurde und das DOS-Fenster nach 2 Sekunden geschlossen wird, können Sie die Zeilen hinzufügen:

timeout 2> nul

ausfahrt

  • Der Befehl exit funktioniert jedoch nicht, wenn die Batchdatei ein weiteres Fenster öffnet. Denn während das zweite Fenster geöffnet ist, wird auch das alte DOS-Fenster angezeigt. 

LÖSUNG: Zum Beispiel gibt es ein tolles kleines kostenloses Programm namens BgInfo, das alle Informationen über Ihren Computer anzeigt. Angenommen, es befindet sich in einem Verzeichnis namens C:\BgInfo. Um es aus einer Batch-Datei mit der "/ popup" -Schaltfläche auszuführen ..... UND für das DOS-Fenster, das anschließend geschlossen wird, während es noch läuft, verwenden Sie:

"" "C:\BgInfo\BgInfo.exe"/popup starten

ausfahrt

6
Adrian747

Das hat bei mir funktioniert. Ich wollte nur das Befehlsfenster nach dem Beenden des Spiels automatisch schließen. Ich doppelklicke einfach die .bat-Datei auf meinem Desktop. Keine Abkürzungen.

taskkill /f /IM Explorer.exe
C:\"GOG Games"\Starcraft\Starcraft.exe
start Explorer.exe
exit /B
2
scrappy

Fügen Sie diesen Code am Ende des Ausführungscodes hinzu

c:\windows> beenden

0
Shyam99

Wenn Sie die Befehle in einen Befehl pro Datei aufteilen möchten, können Sie dies tun

cmd /c start C:\Users\Yiwei\Downloads\PuTTY.exe -load "MathCS-labMachine1"

und in der anderen Datei können Sie tun 

cmd /c start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Der Befehl cmd/c schließt das Eingabeaufforderungsfenster, nachdem das Exe ausgeführt wurde. 

0
Jenna Leaf

Sie könnten das etwas Gefährliche versuchen: taskkill /IM cmd.exe ..dangerous bcz, das die geöffnete cmd abtötet und alle cmd davor geöffnet wird.

Oder fügen Sie eine Bestätigung hinzu, um zu bestätigen, dass Sie die richtige cmd.exe hatten, und beenden Sie sie dann über die PID wie die folgende:

set loc=%time%%random%
title=%loc%
for /f "tokens=2 delims= " %%A in ('tasklist /v ^| findstr /i "%loc%"') do (taskkill /PID %%A) 

Ersetzen Sie (pslist &&A) oder (tasklist /FI "PID eq %%A") für den (taskkill /PID %%A), wenn Sie ihn zuerst überprüfen möchten (und möglicherweise Pstools installiert haben).

0
treacle