用AppleScript打开程序

sab*_*ajt 18 applescript

2部分问题:

我只是试图使用终端上的AppleScript来运行程序,所以我尝试了:

$ osascript tell application "iTunes" to activate
Run Code Online (Sandbox Code Playgroud)

并得到错误:

osascript: tell: No such file or directory
Run Code Online (Sandbox Code Playgroud)

提供该计划的完整途径也不起作用.我错过了什么?问题的第二部分是我最终想要使用applescript的内容.我想用它来打开我使用py2app构建的应用程序.Apple可以打开任何mac应用程序或只是已经兼容的某些应用程序.

谢谢

reg*_*633 25

试试这个.注意在编写命令时使用"-e".如果没有"-e",您将给出一个运行AppleScript的路径.另请注意,string命令必须在引号中.

osascript -e "tell application \"iTunes\" to activate"
Run Code Online (Sandbox Code Playgroud)

如果你有一个多行的AppleScript,你可以在每一行之前使用"-e"......

osascript -e "tell application \"iTunes\"" -e "activate" -e "end tell"
Run Code Online (Sandbox Code Playgroud)

如果要打开应用程序,只需使用unix"open"命令...

open "/path/to/application"
Run Code Online (Sandbox Code Playgroud)

如果你想使用applescript打开一个应用程序并且"activate"命令不起作用(它应该适用于几乎所有的东西),然后告诉Finder打开它.请记住,applescript使用冒号分隔的路径......

osascript -e "tell application \"Finder\" to open file \"path:to:application\""
Run Code Online (Sandbox Code Playgroud)


小智 10

osascript 的替代方法:

open -a Calendar
Run Code Online (Sandbox Code Playgroud)

靠近:

pkill Calendar
Run Code Online (Sandbox Code Playgroud)


Ala*_*ter 9

在bash shell中(如在Terminal中),您可以使用"here document"将多行发送到osascript.

osascript -e "tell application \"iTunes\"" -e "activate" -e "end tell"
Run Code Online (Sandbox Code Playgroud)

osascript <<EOF
tell application "iTunes"
   activate
end tell
EOF
Run Code Online (Sandbox Code Playgroud)

作为一个老式的Unix黑客,我将这些小片段保存在我的$ HOME/bin目录中,并从命令行调用它们.尽管如此,仍在学习细节.

艾伦


ada*_*one 6

尝试:

do shell script "open /Applications/iTunes.app"
Run Code Online (Sandbox Code Playgroud)


小智 6

你需要在tell周围加上单引号:

osascript -e'告诉app"iTunes"激活'

否则你在运行-e时定义一个变量