Hier nur kurz und knapp eine von vielen Möglichkeiten vorgestellt, mit denen man Windows-Verknüpfungen mit PowerShell-Befehlen verbessern kann.
Problemstellung
Cloud-Dienste wie beispielsweise DropBox, OneDrive und OwnCloud bieten Client-Programme unter Windows an. Startet man diese Programme über die vorgegebenen Verknüpfungen werden zum Beispiel bei OneDrive und DropBox die synchronisierten Ordner geöffnet, wenn das Programm bereits lief. Bei OwnCloud ist das im Moment aber leider nicht der Fall.
Lösungsansatz
Verknüpfung dahingehend verändern, dass zunächst abgefragt wird, ob das Programm schon läuft. Wenn ja, dann soll der synchronisierte Ordner geöffnet werden. Dafür bearbeitet man die OwnCloud-Verknüpfung und fügt eine If-Kondition ein:
Ziel: powershell if(Get-Process owncloud*){ ii 'D:\OwnCloud' } else { ii 'C:\Program Files (x86)\ownCloud\owncloud.exe'}
Erklärung
- Der Befehl „powershell“ wird in den Standardverzeichnissen gesucht und automatisch in den vollen Pfad umgewandelt
-
Get-Process owncloud*
sucht nach Prozessen, die dem Suchmuster entsprechen und gibt nichts zurück, falls nichts gefunden wird -
ii
ist ein Alias für Invoke-Item und führt eine Standardaktion auf das im Pfad angegebene Element aus (wie ein Doppelklick) - Anweisung: wenn Prozess gefunden, dann Ordner öffnen, sonst Prozess starten
Links
- Verwandte Beiträge:
- Doku zu ii (Invoke-Item):
- https://docs.microsoft.com/de-de/powershell/module/Microsoft.PowerShell.Management/Invoke-Item
- Für die eigene PS-Version aufrufen per:
Get-Help Invoke-Item -Online
- Doku zu Get-Process:
- https://docs.microsoft.com/de-de/powershell/module/Microsoft.PowerShell.Management/Get-Process
- Für die eigene PS-Version aufrufen per:
Get-Help Get-Process -Online