查找使用AppleScript安装的Mac OSX版本

los*_*sit 7 macos applescript

如何使用AppleScript查找Mac上安装的OSX版本?我想以编程方式安装应用程序,并根据版本运行不同的pkg文件.

谢谢

Rud*_*ura 17

以下是如何使用内置函数在AppleScript中获取OSX版本:

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

在OS X Mavericks上,结果是"10.9".

一内胆: set osver to system version of (system info)


Mic*_*sai 13

您可以使用以下命令将OS版本作为显示字符串获取:

set _versionString to system version of (system info)
Run Code Online (Sandbox Code Playgroud)

如果要将其与其他版本进行比较,请务必使用considering numeric strings:

considering numeric strings
    set _newEnough to _versionString ? "10.9"
end considering
Run Code Online (Sandbox Code Playgroud)

否则,您可能遇到诸如"10.4.11"小于"10.4.9"或"10.10"小于"10.9"的问题.

你也可以使用system attribute.这使您可以将版本号作为整数获取,这样您就不必担心比较以点分隔的字符串:

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
Run Code Online (Sandbox Code Playgroud)

您还可以使用system attribute获取单个版本组件而无需解析字符串:

set _major to system attribute "sys1" -- 10
set _minor to system attribute "sys2" -- 9
set _bugFix to system attribute "sys3" -- 0
Run Code Online (Sandbox Code Playgroud)


Tre*_*ble 8

我不是在Mac上,所以可能有更好的方法来实现这一点,但首先想到的方法是执行shell命令来查询操作系统版本.

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

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

根据这些参考资料,您可能希望执行以下操作:

set os_version to do shell script "sw_vers -productVersion"
Run Code Online (Sandbox Code Playgroud)