Ich habe BAT-Datei im Hintergrund unter Windows ausgeführt, die etwa zehn Minuten dauert. Jetzt möchte ich es stoppen, während es ausgeführt wird, aber ich kann seinen Namen nicht in der Prozessliste im Task-Manager finden. Wie kann ich das angehen? Vielen Dank!
UPDATE1
Es scheint schwierig zu sein, einen laufenden BAT-Prozess im Hintergrund zu stoppen. Und ich entscheide mich, jeden Prozess, der an der BAT-Datei beteiligt ist, nach Namen zu beenden, was möglicherweise übertrieben ist. Dies ist für mich akzeptabel, da die meisten Prozesse in meiner BAT-Datei nicht häufig verwendet werden. wie Ping, Tracert, Netstat usw. Wenn Sie eine bessere Lösung haben, lassen Sie es mich bitte wissen. Danke.
UPDATE2
BAT-Prozessbaum
ShellExecute(NULL,"open","some.bat",NULL,NULL,SW_HIDE);
in VC ++ ausgeführt werden.Antworten:
Prozesse werden normalerweise in einer Baumstruktur gestartet. Ich würde empfehlen, Microsoft / Sysinternals Process Explorer zu starten. Klicken Sie zunächst auf die
Show Process Tree
Option (1), suchen Sie Ihren Prozess und klicken Sie mit der rechten Maustaste und wählen SieKill Process Tree
(2). Dies sollte sowohl die Originaldatei als auch löschen alles, was es gestartet hat.quelle
taskkill /F /T /IM cmd.exe
gestartetencmd.exe
Prozess beenden kann. Das einzige Problem ist, dass jede BAT-Datei einen Prozess mit einer anderen PID startet Ich muss herausfinden, welches mein Ziel ist.Sie können die Batchdatei so ändern, dass sie eine Sperrdatei verwendet, um den Betrieb fortzusetzen, indem Sie zwischen Befehlen Überprüfungen auf das Vorhandensein der Datei einfügen. Um die Ausführung der Batch-Datei zu stoppen, löschen Sie einfach die Sperrdatei.
Hier ist eine Demo-Batch-Datei:
Um die Prozesse, die derzeit ausgeführt werden, gewaltsam zu beenden , können Sie eine Batch-Datei "kill" erstellen, die Taskkill- Befehle für alle Aufgaben enthält, die möglicherweise über die Batch-Datei gestartet werden:
quelle
tracert
zum Beispiel für eine lange Zeit ausgeführt wird .Ein BAT startet normalerweise nur eine Instanz von CMD.exe. Abhängig davon, was Ihr Skript tut, werden auch andere Prozesse gestartet.
quelle
Ich habe eine App geschrieben , die Ihnen helfen könnte, zumindest wenn die BVT in einem CMD-Fenster ausgeführt wird. Sie können die laufenden Anwendungsfenster anzeigen und die PID der App abrufen. Sie können sie dann mit meiner App beenden. Sie können auch alle Prozesse anzeigen, die sie erzeugt hat, und sie auch beenden. Es ist ein wirklich einfaches Programm, aber effektiv für solche Dinge. Sie können es auch verwenden, um genau zu ermitteln, wo auf Ihrer Festplatte die BAT-Datei ausgeführt wird, falls Sie das noch nicht wussten.
quelle
Wie wird die Batchdatei aufgerufen?
Wenn es vom Taskplaner stammt, können Sie es auch von dort aus stoppen. Wenn es sich um einen Dienst handelt, können Sie den Dienst beenden.
quelle
Fand diesen Message Board Thread:
http://www.gamedev.net/community/forums/topic.asp?topic_id=261694
Es wird empfohlen, ShellExecuteEx (oder CreateProcess) zu verwenden, damit Sie ein Prozesshandle erhalten, das dann zum Beenden des Prozesses verwendet werden kann.
quelle
Wenn Sie es in der Eingabeaufforderung geöffnet haben, können Sie Ctrl+ drücken C. Warten Sie einige Sekunden und es wird beendet.
quelle