Zwingen Sie eine App, eine der Menüoptionen aus einem Shell -Skript auszuführen?
Frage
Gibt es eine Möglichkeit, die App zu zwingen, eine der Menüoptionen auszuführen, wenn keine Befehlszeilenschnittstelle verfügbar ist?
Vielleicht eine Art Automatisierung?
BEISPIEL
Ich möchte den Befehl "Datei> Exportfeeds" von Newsfire ausführen, um die Feed -Liste (OPML -Datei) zu sichern. Ich habe versucht, Newsfire durch Terminal mit "-Help" zu führen, aber kein Glück.
Hier ist das Backup -Skript, das ich derzeit verwende, falls jemand es nützlich empfindet. Es kann verwendet werden, um den Status von Newsfire zu speichern und wiederherzustellen, um mehrere Maschinen zu erreichen (um Sie nur wiederherzustellen cd ~
, und dann unzip backup.zip
).
#! /bin/bash
#
# Backup NewsFire preferences, feeds and cache (everything)
#
D_DESTFILE=~/Backups/Config/NewsFire.zip
# Don't update archive, create new one
if [ -e "$D_DESTFILE" ]; then
rm $D_DESTFILE
fi
cd ~
zip -r $D_DESTFILE Library/Application\ Support/NewsFire Library/Caches/org.xlife.NewsFire Library/Preferences/org.xlife.NewsFire.plist
Lösung
Dies ist ein Beginn eines Apfelkripts zum Exportieren:
set filename to "test file"
tell application "NetNewsWire" to activate
tell application "System Events"
tell process "NetNewsWire"
click menu item "Export Subscriptions…" of menu "File" of menu bar 1
set value of first text field of first sheet of first window to filename
click button "Save" of first sheet of first window
end tell
end tell
tell application "NetNewsWire" to quit
Sie speichert die exportierte Datei mit dem festgelegten Dateinamen an dem Ort, der zuletzt zum Exportieren verwendet wurde. Es wird eine aktuell vorhandene Datei nicht überschrieben, sodass Sie sie möglicherweise an einem temporären Ort speichern und mit einem separaten Skript verschieben können.
Notiz: Meine Kopie von NetNewswire hatte den Menübefehl "Exportabonnements ...", nicht "Exportfeeds", aber wenn Ihre unterschiedlich ist, ändern Sie einfach den Namen des Menüelements in Zeile 6.
Zum Hinzufügen bearbeiten: Sie müssen außerdem "Zugriff für Hilfsmittel aktivieren" im Universal Access System Preference Panel für aktiviert für die Funktionsweise sein.