9

AppleScriptを使用してMacにインストールされているOSXのバージョンを確認するにはどうすればよいですか?プログラムでアプリをインストールし、バージョンに基づいて異なるpkgファイルを実行したいと思います。

ありがとう

4

7 に答える 7

19

組み込み関数を使用して、AppleScriptでOSXバージョンを取得する方法は次のとおりです。

sysinfoをシステム情報に設定します
osverをsysinfoのシステムバージョンに設定します

OS X Mavericksでは、結果は「10.9」です。

一発ギャグ:set osver to system version of (system info)

于 2011-07-25T01:28:09.713 に答える
15

次を使用して、OS バージョンを表示文字列として取得できます。

set _versionString to system version of (system info)

これを別のバージョンと比較したい場合は、必ず次を使用してconsidering numeric stringsください。

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

そうしないと、「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

system attribute文字列を解析せずに個々のバージョン コンポーネントを取得するために使用することもできます。

set _major to system attribute "sys1" -- 10
set _minor to system attribute "sys2" -- 9
set _bugFix to system attribute "sys3" -- 0
于 2013-10-25T17:26:39.423 に答える
8

私は Mac を使用していないので、これを行うためのより良い方法があるかもしれませんが、頭に浮かぶ最初のアプローチは、OS のバージョンを照会するシェル コマンドを実行することです。

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"
于 2009-01-31T05:36:51.603 に答える
4

Finderアプリからもバージョンを取得できます

tell application "Finder"
    set os_version to version
end tell

display dialog os_version

私のマシンでは、これは「10.5.8」と表示されます。

于 2009-06-09T04:32:53.353 に答える
2

私は AppleScript にあまり詳しくありませんが、私の知る限り、sw_vers コマンドを使用してシェルからバージョンに関する情報を取得できます。例えば:

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

それをappleScriptから読み取って解析できれば、それが解決策になるかもしれませんが、もっとエレガントなものが必要だと思います.

于 2009-01-31T05:36:38.937 に答える
0

これらの線に沿って何かを試してください:

tell application "Terminal"
activate

set theVersion to do script with command "sw_vers -productVersion"
end tell

編集:これはターミナルを開くことを指摘されました、そしてそれはおそらくあなたが望む振る舞いではありません。

于 2009-01-31T05:51:47.703 に答える
0

これは私のために働いた

set OSVersion to system version (system info)
if OSVersion as string < "10.9" or OSVersion as string > "10.9.5" then
- Add code to execute if condition met
else
- Add code to execute if condition not met
end if

于 2015-03-04T11:55:45.123 に答える