Mit Batch alle programme schließen außer ein bestimmtes?

3 Antworten

Du müsstest test.exe in die Liste der exclusions aufnehmen, so wie z.B. googledrivesync.exe in dem Beispiel.

Frameworks 
Fragesteller
 17.05.2020, 13:12

habe ich getestet geht nicht sie schließt sich trotzdem

0
zalto  17.05.2020, 13:19
@Frameworks

Dann musst Du Schritt für Schritt durchgehen, woran das liegt. Happy debugging!

0
zalto  17.05.2020, 13:27
@Frameworks

Meine Meinung zu dem Thema ist ohnehin, dass man Programme, die man nicht will, gar nicht erst starten sollte. Und wenn es einen guten Grund gibt, sie zu starten, dann gibt es auch einen guten Grund, sie über die Benutzeroberfläche zu beenden. Bei Programmen, die man massenhaft blind abschießt, ist doch der Datenverlust vorprogrammiert.

1

In dieser Antwort wurde ein solches Batchfile veröffentlicht - und es tut, was es soll:

https://www.gutefrage.net/frage/ultimative-taskkill-batchcmd

Frameworks 
Fragesteller
 17.05.2020, 13:08

inwiefern muss ich diese datei hier ändern dass test.exe (als admin gestartet) nicht geschlossen wird ?

@echo off
setlocal enabledelayedexpansion

 rem irgendwas Einzigartiges (schützt das Fenster)
set "wndwName=Rumpeldipumbel"
title %wndwName% 

set "exclusions=%wndwName% conhost.exe dllhost.exe dtshellhlp.exe dwm.exe explorer.exe findstr.exe prevhost.exe "
set "exclusions=%exclusions% taskeng.exe taskhost.exe taskmgr.exe tasklist.exe userinit.exe explorer.exe"
 rem bis hier sollte alles so bleiben!
 rem in die folgende Zeile kommt was du am Leben lassen möchtest wie Cloud oder aktive Downloader etc.
set "exclusions=%exclusions% sidebar.exe googledrivesync.exe"

 rem die Filter von tasklist / taskkill arbeiten teilweise sehr Eigenwillig mal schliest sich der Explorer und läd neu,
 rem mal dann wieder bleiben einige Sachen, welche Verschwinden sollten was man auch an Filtern setzt es kommt anders als erwartet
 rem Der Fensterfilter funktioniert beim ersten Start beim nächsten killt er es... deshalb von außen filtern...
 rem füge zu exclusions alles hinzu, was nicht getötet werden sollte. Eigentlich kann alles in eine Zeile, aber dann kommt der 
 rem GuteFr.-editor wieder ins schleudern...
  
for /f " tokens=1,2,9 delims=," %%a in ('tasklist /nh /v /fo csv /fi "username eq %username%" 2^>nul^| findstr /i /v "%exclusions%"') do (
 echo zur PID %%b KillListe Process: %%a 
 set "killList=!killList! /pid %%~b" 
)

 rem ohne der parameter /f killt den Prozess gnadenlos
 rem das weglassen von /f entspricht dem Drücken des schließen-Knopfes.
 rem gegebenenfalls bekommt man dann einen Haufen "wirklich beenden"-Fragen...
 rem ich habe hier erstmal die dicke Keule eingestellt , denn Softkill ist K*cke
  
 rem ab und zu Speichern sollte man seine Arbeit ohne hinundwieder speichern
taskkill /f %killList% 
  
 rem Wenn Du auch alle Ordnerfenster schließen möchtest, mach es so:
 rem !Auf keinen Fall beim Explorer den parameter /t (Tree) verwenden,
 rem sonst schießt man Trotz aller Filterei auch die Batch ab und man
 rem kann sich einen schönen leeren Desktop angucken XD Affengriff...
taskkill /f /im explorer.exe
start "" explorer.exe
pause
exit /b 
0

Ich bin doch immer wieder erstaunt, welche Verbreitung meine Scripte finden.😍

Unlängst hatte ich sogar meine Fliegenden Klötzchen in einem brasilianischen Forum gefunden...

...aber nun zu Deinem (meinem) Script...:

Du hast nicht wirklich begriffen wie es funktioniert. Auch die eingefügten Kommentare scheinen nicht wirklich anklang gefunden zu haben.

...in die folgende Zeile kommt was du am Leben lassen möchtest wie Cloud oder aktive Downloader etc.....

...ergo auch Deine .exe...

Allerdings würde ich abraten das ganze als Admin auszuführen... . der Filter /fi "username eq %username%" einen guten Grund, nämlich essenzielle Systemprozesse zu schützen. Startest Du die Batch als Admin bekommen auch Tasklist und Taskill Adminrechte und killen gnadenlos auch Systemprozesse , welche nicht nicht explizit in der Exclusionsliste aufgeführt wurden, was wohl zu einem Systemcrash führen dürfte.

zudem ist die von Dir in den Kommentaren zitierte Batch steinalt und von der Zeit überholt.

In https://www.gutefrage.net/frage/wie-beende-ich-alle-nicht-system-apps#answer-343978939 handle ich das Thema herstellen eine definierten Systemzustands nochmals ab. Die Batch dort berücksichtigt auch Programme mit Leer- und Unicodezeichen im Namen. In den Kommentaren behandle ich auch das erstellen einer definierten Whitelist, welche Laufende Programme zu einem bestimmtem Zeitpunkt in einer AusschlussListe festhält.

Eine Batch wie diese ist kein lustiges Spielzeug und auch nicht dazu angedacht in einer Bat2Exe-Datei verborgen zu werden. Welchen Grund hast Du eine solche brisante Batch in einer Exe unterzubringen?

Batches die ich hier für Nutzer veröffentliche sind offen einsehbarer Code und sollten dies auch bleiben.

Diese sind Hilfsmittel um selektiv einen vorgegebenen Systemzustand herzustellen, dafür muss man diese nicht in eine Exe umwandeln. Solltest Du dich nur mit fremden Federn schmücken wollen, dürfte das nach hinten losgehen.

Meine Batches sind keine Universalwerkzeuge, welche man in Form eines Systemoptimierungsprogramms weitergeben kann. https://www.gutefrage.net/frage/batch-funktioniert-nicht- (wo eine Bewerung noch immer aussteht?)

Die selektive Taskkill wird als Batch weitergegeben damit ein Nutzer diese an die eigenen Bedürfnisse seines Systems anpassen kann. Diese Batch in welcher Version Du sie findest, würde auf einem System mit anderen als den aufgeführten Prozessen Schaden verursachen. Stell Dir vor jemand hat einen Server im Hintergrund laufen oder einen Spezialtreiber im Ring3-Mode laufen und die Batch berücksichtigt dies nicht... im ungünstigsten Fall nimmt das angeschlossene Gerät Schaden. ...oder ein Backup wird unterbrochen oder ein Update wird in einem kritischen Moment unterbrochen...

Du bist noch Änfänger und versuchst ein Systemoptimierungstool zu Programmieren. Dies geht natürlich weit über Deine Fähigkeiten hinaus. Leute wie ich, programmieren teilweise schon über 30 Jahre lang und wissen in etwa, wo und wie man gezielt etwas bewirken kann.

Es gibt einen guten Grund, weshalb professionelle Systemtweaker keinen Taskkiller wie den meinen anbieten: Geht was schief ist es schlecht für die Reputation.

Als ich meine Verbesserung zu Deiner Batch schrieb, habe ich dies nur kommentarlos durchgewunken, weil ich nicht ahnen konnte das Du Fremde Komponenten unbedacht einsetzen würdest (wie will wohl ein Anfänger per Batch Ram freigeben? oder den Systemstart beschleunigen? ..las ihn mal machen😅😏🥱)

  • Temporary Files (ok da kann man nicht viel kaputt machen...)
  • Boosting Startup (mal hoffen das er nichts weiter findet als die Programme im Startupordner und nicht so dumm ist in der Reg herumzupfuschen)
  • Clear RAM (keine Ahnung... selbst ich kann den Speicher nicht bereinigen. Seit immer weniger in nativem C programmiert wird, sind Speicherlecks sehr selten geworden. Außer einem Systemneustart gibt es keine externen Möglichkeiten in die speicheverwaltung von Windows einzugreifen! Gott sei dank 🙄...also kein Grund zur Sorge🥱)
  • Best Performance Mode (najaa... per Batch ist es kein Akt das Powerprofil umzuschalten kann man nich viel kaputt machen

...hier wirds kritisch 😨🤯😱😵👿🥶☠👻

  • Remove Trash Data   (was verstehst Du unter Trashdata... Omas Fotosammlung?)
  • Stop Not Responding Programms (eher selten das ein Programm nicht antwortet, es zu stoppen ist eher Kosmetik und beseitigt nicht die Ursache)
  • Defragmenting Harddrive  (da könnte eine Klagewelle auf Dich zu rollen! das KommandozeilenTool defrag.exe erwartet vom Nutzer das er weiß was er tut und berücksichtigt nicht die Bedürfnisse einer SSD. Eine SSD dürfte bei dessen Einsatz wohl jede Menge Lebenszeit verlieren. Windows ab 7 defragmentiert während Idlezeiten ständig im Hintergrund. Es gibt keinen vernünftigen Grund für eine manuelle Defragmentierung! Eine festgelegte Anordnung von Dateien ist nur mit Spezialtools möglich. zb. Auslogics )

hier bin ich mir nicht sicher was Du meist?.

  • Refresh Windows    Soll das in ein Inplace-Upgrade münden (da wäre ich aber einem Anfänger ziemlich böse, wer der das auf meinem Rechner loslassen würde ( vom Rücksetzen ganz zu schweigen)

Du siehst die meisten Sachen sind unnötig oder gar gefährlich für das System.

Das was auf dem eigenen Rechner funktioniert ist nicht uneingeschränkt auf ander Rechner übertragbar .

Der Unterschied zwischen Leuten wie mir liegt darin, das ich brisanten Code mit überreichlichen Kommentaren versehe und nicht in eine Exe verstecke.

Bei vielen von mir veröffentlichten Programmcodes übersteigt das volumen der Kommentare oft den eigentlichen Code... je mehr ich zu Code schreibe für um so krittischer sehe ich dessen Anwendung durch Laien!

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren