[BATCH] Wie kann ich ein bestimmtes Cmd Fenster schließen?
Also sagen wir, um es mit einem Beispiel besser auszudrücken, es sind drei Batch(/CMD) Fenster offen:
- BEFEHLSFENSTER
- WINDOW B
- WINDOW C
Wenn ich jetzt in der Batch Datei mit dem title BEFEHLSFENSTER einen Befehl eingebe, der sagt, schließe nur WINDOW C, und das Script (tilte: BEFEHLSFENSTER) dann ausführe, schließt sich nur das Fenster mit dem title WINDOW C.
Ich habe schon diesen Befehl ausprobiert,
taskkill /F /FI "WINDOW C" /IM cmd.exe /T
die Ausgabe des Befehls ist jedoch immer:
FEHLER: Der Suchfilter wurde nicht erkannt.
obwohl das Fenster mit dem title WINDOW C geöffnet war. Und es blieb geöffnet.
Ich habe auch versucht, bei dem Suchfilter, den Dateinamen anzugeben, jedoch mit gleicher Fehlerausgabe:
FEHLER: Der Suchfilter wurde nicht erkannt.
Ich hoffe, jemand kann mir bei meinem Problem helfen.
L.g. schwappo
2 Antworten
Das taskkill keinen Suchfilter erkannt hat, liegt daran, dass du gar keinen angegeben hast... Woher soll taskkill denn wissen, ob du nach status, nutzername, CPU time oder eben dem Fenstertitel filtern willst?
In deinem Fall also:
taskkill /F /FI "WINDOWTITLE eq WINDOW C" /IM cmd.exe /T
~Tim
Da habe ich wohl gewaltig was überlesen 😂 Das kling logisch; ich werde es gleich mal ausporbieren.
Was willst du damit erreichen? Ich denke, dass wenn es eine Lösung gibt, dann ist es taskkill. Mal über ids versucht?
@timlg07 Ja das stimmt, das Problem hat sich aber schon gelöst. Danke für eure Hilfe 😉
Prozess IDs. Ich vermute, dass batch dafür nicht geschrieben wurde.
Geht selbstverständlich in Batch, mit taskkill /FI.
Als Filter kann dort auch die PID verwendet werden:
PID eq, ne, gt, lt, ge, le Prozess-ID-Wert
Einfach mal taskkill /? durchlesen.
Danke, dass überrascht mich sehr, wo ich es doch selber vorgeschlagen habe. Aber gut das ich jetzt weiß, was ich wissen musste, um meinen Beitrag zuvor zu schreiben.
Aber ich erkenne, warum es missverständlich war:
- @ schwappo Wenn das eine nicht geht versuche das andere. Wenn du es nicht über den Text machen kannst, versuche es über die ID
- CMD ist nicht dafür Designed worden in andere Instanzen einzugreifen. Das bedeutet, du wirst keinen Befehl finden, der spezifisch deinen Anforderungen entspricht.
mfg
Soweit ich das verstanden habe, will er einfach andere Batchdateien (die eventuell zum gleichen Projekt gehören) schließen. Die einfachste Methode, die sicher funktioniert, da ich sie auch schon selbst verwendet habe, ist dabei jedem der Fenster einen eigenen Fenstertitel zu geben und diesen dann als Filter für taskkill zu verwenden.
Eine Alternative wäre zum Beispiel, dass die anderen Programme auf die Existenz oder den Inhalt einer (zB. Text)Datei überprüfen und dann selbst handeln (=> sich also selbst schließen).
ids? Ich will ein bestimmtes CMD Fenster schließen. Das ist das was ich damit erreichen will.