
Q:Wie füge ich einer fixierten Anwendung Befehlszeilenargumente hinzu und sorge dafür, dass sie weiterhin übereinstimmen?
Durch meine Gewohnheiten/meinen Arbeitsablauf sind eine Reihe von Apps an die Windows-Taskleiste „angeheftet“, sodass Win-#
ich „immer“ zum richtigen Fenster gelange.
(Ich bin ein Emacs/Ess-Benutzer für R, kein RStudio.) Wenn ich bereits ein Diagramm geöffnet habe, Win-2
wechselt mich sofort zum Diagrammfenster. Wenn ein Diagramm jedoch noch nicht abgeschlossen ist, Win-2
wird durch Drücken vonStarteine neue Instanz dieser Anwendung. In diesem Fall sind die Symboleigenschaften:
Ziel:
C:\R\R-3.5.3\bin\x64\Rterm.exe
Startet in:
C:\R\R-3.5.3\bin\x64
Tastenkürzel:
None
Laufen:
Normal Window
Ich möchte es so einrichten, dass versehentliches Drücken, Win-2
während kein Plot vorhanden ist, keine neue Instanz von startet Rterm
. Eine Abhilfemaßnahme könnte darin bestehen, Rterm
sofort durch Hinzufügen --help
zum Ziel zu beenden. Dies führt jedoch dazu, dass die Übereinstimmung des Fensternamens fehlschlägt und alle nachfolgenden Plots, die geöffnet werden, diese Taskleistenposition nicht verwenden.
Gibt es eine Möglichkeit, Argumente hinzuzufügen, die die Titelübereinstimmung nicht unterbrechen? Ichniemalsbeabsichtige, R mit diesem Symbol zu starten (immer innerhalb von Emacs/Ess), also wäre es auch gut, wenn es eine Möglichkeit gäbe, nie eine App zu starten (einfach dorthin zu wechseln, wenn sie woanders erstellt wurde).
(Eine Lösung wird höchstwahrscheinlich Windows-zentriert sein: R hat hier meines Erachtens weder Kontrolle noch Einfluss.)
Antwort1
Tatsächlich hat diese Frage wenig mit der R
statistischen Programmiersprache zu tun.
Es hängt eher mit derMicrosoft Windows 10Betriebssystem.
Ich denke, Sie können mit der Erstellung Ihrer Lösung für dieses Problem beginnen, indem Sie ein Symbol auf dem Desktop erstellen.
Fügen Sie hier alle benötigten Argumente in die Befehlszeile der Verknüpfung ein, die durch das Desktopsymbol dargestellt wird.
Natürlich geben Sie dem Desktopsymbol einen Namen.
Und Sie haben Ihr mächtiges Desktopsymbol zur Freude des Benutzers erstellt.
Sie ziehen es auf die Taskleiste.
Sie drücken Windows+ 3und Ihre statische Softwareanwendung wird gestartet.
Wenn Sie nun die Ausgabe der Rterm --help
Befehlszeile analysieren, finden Sie möglicherweise einen Schalter, der keine neue Instanz vonRtermsolange keine Handlung existiert.
AKTUALISIEREN:
Ich denke, wir könnten es vermeiden, die Hilfe einesRtermExperte, @r2evans. Ich habe mir einen One-Liner ausgedacht, den Sie vielleicht ausprobieren könnten.
Ersetzen Sie einfach den obigen cmd.exe /c pause
One-Liner durch den %SystemRoot%\System32\WindowsPowerShell\v1.0\PowerShell.Exe -Command "If ((Get-Process -Name RTerm) -Eq $()) {Exit-PSSession}"
One-Liner.
Kurz gesagt, anstatt dieMicrosoft Windows 10Command-Line PreProcessor, es startet denMicrosoft Windows Power ShellShell-Skripting-Umgebung, nur um ihr eine einfache If
Anweisung zuzuführen, die prüft, ob ein Plot ausgeführt wird, und sie einfach beendet, wenn kein Plot vorhanden ist.
Wenn ein Plot vorhanden ist, wechseln Sie durch Drücken der Tastenkombination Windows+ einfach zu Ihrem vorhandenen Plot.3