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)
Pilot-Features
Google Maps-Funktionen für nachhaltigeres Reisen
Google schafft zusätzliche Möglichkeiten, um umweltfreundlichere Fortbewegungsmittel zu fördern. Künftig werden auf Google Maps verstärkt ÖV- und Fußwege vorgeschlagen, wenn diese zeitlich vergleichbar mit einer Autofahrt sind.
>>
Codeerzeugung per KI
Code ist sich viel ähnlicher als erwartet
Eine Studie zeigt, dass einzelne Codezeilen zu 98,3 Prozent redundant sind, was darauf hindeutet, dass Programmiersprachen eine einfache Grammatik haben. Die Machbarkeit von KI-erzeugtem Code war also zu erwarten.
>>
JavaScript Framework
Hono werkelt im Hintergrund
Das JavaScript-Framework Hono ist klein und schnell. Ein weiterer Vorteil ist, dass Hono auf vielen Laufzeitumgebungen zum Einsatz kommen kann.
>>
Container
.NET 8 - Container bauen und veröffentlichen ganz einfach
Dockerfiles erfreuen sich großer Beliebtheit. Unter .NET 8 lassen sich Container für Konsolenanwendungen über den Befehl "dotnet publish" erzeugen.
>>