Macos 查找使用AppleScript安装的Mac OSX版本
如何使用AppleScript查找Mac上安装的OSX版本?我想以编程方式安装一个应用程序,并根据版本运行不同的pkg文件Macos 查找使用AppleScript安装的Mac OSX版本,macos,applescript,Macos,Applescript,如何使用AppleScript查找Mac上安装的OSX版本?我想以编程方式安装一个应用程序,并根据版本运行不同的pkg文件 谢谢我对AppleScript不太熟悉,但是您可以使用sw\u vers命令从shell中获得一些关于版本的信息。例如: Macintosh:~ udekel$ sw_vers ProductName: Mac OS X ProductVersion: 10.5.6 BuildVersion: 9G55 如果你能从appleScript中阅读并解析它,这可能是一
谢谢我对AppleScript不太熟悉,但是您可以使用sw\u vers命令从shell中获得一些关于版本的信息。例如:
Macintosh:~ udekel$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.5.6
BuildVersion: 9G55
如果你能从appleScript中阅读并解析它,这可能是一个解决方案,尽管我确信一定会有更优雅的解决方案。我不在Mac电脑上,所以可能有更好的方法来实现这一点,但首先想到的方法是执行shell命令来查询操作系统版本 根据这些参考资料,您可能希望执行以下操作:
set os_version to do shell script "sw_vers -productVersion"
试着做以下几点:
tell application "Terminal"
activate
set theVersion to do script with command "sw_vers -productVersion"
end tell
编辑:有人指出,这确实会打开终端,而这可能不是您想要的行为 您也可以从Finder应用程序获取版本
tell application "Finder"
set os_version to version
end tell
display dialog os_version
在我的机器上显示“10.5.8”。以下是如何使用内置函数在AppleScript中获取OSX版本: set sysinfo to system info set osver to system version of sysinfo 将sysinfo设置为system info 将osver设置为sysinfo的系统版本 在OSX小牛上,结果是“10.9”
一行:
将osver设置为(系统信息)的系统版本。
您可以使用以下命令将操作系统版本作为显示字符串获取:
set _versionString to system version of (system info)
如果要将此版本与其他版本进行比较,请确保使用:
否则,您可能会遇到诸如“10.4.11”小于“10.4.9”或“10.10”小于“10.9”之类的问题
您还可以使用系统属性
。这使您可以将版本号作为整数获取,这样您就不必担心比较点分隔字符串:
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
您还可以使用系统属性
获取各个版本组件,而无需解析字符串:
set _major to system attribute "sys1" -- 10
set _minor to system attribute "sys2" -- 9
set _bugFix to system attribute "sys3" -- 0
这对我有用
将OSVersion设置为系统版本(系统信息)
如果OSVersion as string<“10.9”或OSVersion as string>“10.9.5”,则
-如果满足条件,则添加要执行的代码
其他的
-如果不满足条件,则添加要执行的代码
如果终端没有运行怎么办?这将启动它,吓坏大多数用户。这是真的,但是,我假设海报会修改此代码以满足他们的需要。这似乎是最“正确”的方式,因为它完全依赖于内置功能。我不知道如何在JXA(JavaScript for Automation)中实现这一点?似乎没有和SystemInfo对象。这将返回查找程序版本,而不是操作系统版本。在我的例子中(6年后=P),Finder版本是10.10.4,而os版本是10.10.3。
set _major to system attribute "sys1" -- 10
set _minor to system attribute "sys2" -- 9
set _bugFix to system attribute "sys3" -- 0