18.10.2022
Mal ausprobieren
Batch-File: Programm nur starten, falls es noch nicht läuft
Autor: Gaby Salvisberg
PCtipp.ch
Sie möchten unter Windows ein Programm nur starten, falls jenes noch nicht läuft. Das klappt mit einer einfachen Batch-Datei. Vielleicht brauchen Sie das ja mal!
Besonders, wer mit vielen Fenstern arbeitet, vielleicht sogar auf mehreren Bildschirmen, kann auch mal die Übersicht darüber verlieren, welche Programme schon laufen und welche nicht.
So möchten Sie vielleicht via Batch-Datei einen Programmstart anstossen, aber nur, sofern dieses Programm noch nicht läuft.
Zunächst die Kurzfassung
Angenommen, es geht um Firefox, pflanzen Sie diesen Befehl in Ihre Batchdatei:
tasklist | find /i "firefox.exe" || "C:\Program Files\Mozilla Firefox\firefox.exe"
Erklärung
Hierfür verwenden Sie das Bordwerkzeug namens tasklist. Sie machen sich zunutze, dass ein gestartetes Programm stets auch einen Windows-Prozess belegt, welcher den Namen der ausführbaren Datei trägt. Um es auszuprobieren, starten Sie eine Eingabeaufforderung. Tippen Sie den Befehl tasklist ein und drücken Sie Enter. Sofort listet es im Konsolenfenster sämtliche Tasks auf. In der Spalte «Abbildname» sehen Sie die Namen der Tasks.
Mit dem Zusatz find /i "firefox.exe" finden Sie alle Tasks des Programms firefox.exe. Geben Sie daher einmal dies ein, gefolgt von Enter: tasklist | find /i "firefox.exe"
Wenn Firefox läuft, listet dies alle Firefox-Tasks auf. Die senkrechten Striche | sind sogenannte Pipes, die dem Verketten bzw. der Datenübergabe dienen. Ein einzelner übergibt die Ausgabe des vorherigen Befehls an den nachfolgenden Befehl. Zwei || bewirken, dass der nachfolgende Befehl nur ausgeführt wird, wenn der vorherige fehlschlägt.
Würden Sie nur "C:\Program Files\Mozilla Firefox\firefox.exe" in die Eingabeaufforderung schreiben, würde dies Firefox auf jeden Fall starten. Es würde sich damit ein neues Firefox-Fenster öffnen, falls er schon liefe. Mit dem Suchen nach vorhandenen firefox.exe-Tasks und der doppelten Pipe || startet das Programm hingegen nur, wenn es unter den laufenden Tasks nicht gefunden wurde. Und so kommt dieser Befehl zustande:
tasklist | find /i "firefox.exe" || "C:\Program Files\Mozilla Firefox\firefox.exe"
Das ist ein schon älteres Fundstück aus dem PCtipp-Forum, funktioniert aber immer noch, sogar unter Windows 11. (PCtipp-Forum)
Künstliche Intelligenz
Memary - Langzeitgedächtnis für autonome Agenten
Das Hauptziel ist es, autonomen Agenten die Möglichkeit zu geben, ihr Wissen über einen längeren Zeitraum hinweg zu speichern und abzurufen.
>>
Cloud Infrastructure
Oracle mit neuen KI-Funktionen für Sales, Marketing und Kundenservice
Neue KI-Funktionen in Oracle Cloud CX sollen Marketingspezialisten, Verkäufern und Servicemitarbeitern helfen, die Kundenzufriedenheit zu verbessern, die Produktivität zu steigern und die Geschäftszyklen zu beschleunigen.
>>
Reactive mit Signals
Neuer Vorschlag für Signals in JavaScript
Das für die Standardisierung von JavaScript verantwortliche Komitee macht einen Vorschlag für die Einführung von Signalen in die Programmiersprache. Signals sollen reaktives Programmieren in JavaScript einfacher machen.
>>
Konferenz
Wird generative KI Software-Ingenieure ersetzen? DWX-Keynote
Auf der Developer Week '24 wird Professor Alexander Pretschner von der TU München eine der Keynotes halten. Er klärt auf, ob Ihr Job in Gefahr ist.
>>