11 Stimmen

Mit AppleScript installierte Mac OSX-Version finden

Wie kann ich mit Hilfe von AppleScript herausfinden, welche Version von OSX auf meinem Mac installiert ist? Ich möchte eine Anwendung programmatisch installieren und je nach Version verschiedene pkg-Dateien ausführen.

Gracias

20voto

Rudá Moura Punkte 1101

Hier wird beschrieben, wie man die OSX-Version in AppleScript mit Hilfe der eingebauten Funktionen ermittelt:

set sysinfo to system info
set osver to system version of sysinfo

Unter OS X Mavericks lautet das Ergebnis "10.9".

Einzeiler: set osver to system version of (system info)

0 Stimmen

Dies scheint der "korrekteste" Weg zu sein, da er sich vollständig auf integrierte Funktionen stützt

1 Stimmen

Haben Sie eine Idee, wie dies in JXA (JavaScript for Automation) geschehen könnte? Scheint nicht zu haben und SystemInfo Objekt.

18voto

Michael Tsai Punkte 1861

Sie können die Betriebssystemversion als Zeichenfolge anzeigen lassen:

set _versionString to system version of (system info)

Wenn Sie dies mit einer anderen Version vergleichen wollen, verwenden Sie bitte considering numeric strings :

considering numeric strings
    set _newEnough to _versionString  "10.9"
end considering

Andernfalls kann es zu Problemen kommen, z. B. wenn "10.4.11" kleiner ist als "10.4.9" oder "10.10" kleiner ist als "10.9".

Sie können auch Folgendes verwenden system attribute . Damit erhalten Sie die Versionsnummer als Ganzzahl, so dass Sie sich keine Gedanken über den Vergleich von durch Punkte getrennten Zeichenfolgen machen müssen:

set _versionInteger to system attribute "sysv" -- 4240 == 0x1090 (Mac OS X 10.9)
set _isMavericksOrBetter to (system attribute "sysv")  4240 -- 0x1090
set _isMountainLionOrBetter to (system attribute "sysv")  4224 -- 0x1080
set _isLionOrBetter to (system attribute "sysv")  4208 -- 0x1070

Sie können auch Folgendes verwenden system attribute um die einzelnen Versionskomponenten zu erhalten, ohne eine Zeichenkette parsen zu müssen:

set _major to system attribute "sys1" -- 10
set _minor to system attribute "sys2" -- 9
set _bugFix to system attribute "sys3" -- 0

10voto

Trevor Bramble Punkte 7833

Da ich keinen Mac verwende, gibt es vielleicht eine bessere Methode, aber der erste Ansatz, der mir einfällt, ist die Ausführung eines Shell-Befehls zur Abfrage der Betriebssystemversion.

http://developer.apple.com/technotes/tn2002/tn2065.html#TNTAG2

http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man1/sw_vers.1.html

Ausgehend von diesen Hinweisen möchten Sie wahrscheinlich etwas Ähnliches tun:

set os_version to do shell script "sw_vers -productVersion"

0 Stimmen

Das ist die perfekte Antwort! Verwendung von "sw_vers -buildVersion" am Ende wird Ihnen auch die Build-Version angezeigt. Sehr hilfreich, wenn Sie detailliertere Informationen erhalten möchten. Auschecken dieser Kernpunkt um sie in voller Aktion zu sehen.

3voto

Anthony Cramp Punkte 4417

Sie können die Version auch über die Finder-App abrufen

tell application "Finder"
    set os_version to version
end tell

display dialog os_version

Auf meinem Rechner wird "10.5.8" angezeigt.

0 Stimmen

Dies gibt die Finder-Version zurück, nicht die OS-Version. In meinem Fall (6 Jahre später =P) ist die Finder-Version 10.10.4, während die Betriebssystemversion 10.10.3 ist.

2voto

Uri Punkte 86472

Ich bin nicht sehr vertraut mit AppleScript, aber AFAIK können Sie einige Informationen über Versionen von der Shell mit dem Befehl sw_vers erhalten. Zum Beispiel:

Macintosh:~ udekel$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.5.6
BuildVersion:   9G55

Wenn Sie das aus appleScript lesen und parsen können, könnte das eine Lösung sein, obwohl ich sicher bin, dass es etwas Eleganteres geben muss.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X