如何使用参数打开 AppleScript 应用程序
How Can I Open AppleScript App with Arguments
我有一个 AppleScript,它 运行 是一个可以扫描到特定文件夹的扫描程序(命令行)。我需要将参数传递给 applescript,后者又将参数传递给终端。
在终端中我想要 运行 open -a /Applications/MyScanApp.app myargument
和 AppleScript 运行s。我怎样才能通过这个论点?谢谢您的帮助!我通常是一名 PHP 程序员,这对我来说完全不同。
我的 AppleScript:
tell application "Terminal"
do script "./myscanprogram myargument 2>&1"
end tell
想知道你为什么要使用你的终端来解决再次使用终端的 AppleScript,但也许我只是不知道你的情况...
Applescript:
on run argv
tell application "Terminal"
do script "./myscanprogram " & (item 1 of argv) & " 2>&1"
end tell
end run
从终端内的 osascript 调用:
osascript pathToYourScript.scpt myargument
为什么没有人提到 quoted form of
?当您想将任意数据作为参数发送给应用程序时,您应该使用引用形式。当引号、空格和其他特殊字符位于给定路径中时,命令将在前面的示例中分解。
on run argv
tell application "Terminal"
do script "./myscanprogram " & quoted form of (item 1 of argv) & " 2>&1"
end tell
end run
既然你提到你是 AppleScript 的新手,它是否必须在 Terminal.app 中 运行 或 shell 就足够了? AppleScript 有命令 do shell script
打开 shell,执行文本,return 标准输出返回给你。
on run argv
do shell shell script "/path/to/myscanprogram " & quoted form of (item 1 of argv) & " 2>&1"
end run
最后但并非最不重要的一点。如果您不想要扫描程序的输出并且不希望 AppleScript 等到它完成,您可以使用
on run argv
do script "/path/to/myscanprogram " & quoted form of (item 1 of argv) & " &>/dev/null &"
end run
我有一个 AppleScript,它 运行 是一个可以扫描到特定文件夹的扫描程序(命令行)。我需要将参数传递给 applescript,后者又将参数传递给终端。
在终端中我想要 运行 open -a /Applications/MyScanApp.app myargument
和 AppleScript 运行s。我怎样才能通过这个论点?谢谢您的帮助!我通常是一名 PHP 程序员,这对我来说完全不同。
我的 AppleScript:
tell application "Terminal"
do script "./myscanprogram myargument 2>&1"
end tell
想知道你为什么要使用你的终端来解决再次使用终端的 AppleScript,但也许我只是不知道你的情况...
Applescript:
on run argv
tell application "Terminal"
do script "./myscanprogram " & (item 1 of argv) & " 2>&1"
end tell
end run
从终端内的 osascript 调用:
osascript pathToYourScript.scpt myargument
为什么没有人提到 quoted form of
?当您想将任意数据作为参数发送给应用程序时,您应该使用引用形式。当引号、空格和其他特殊字符位于给定路径中时,命令将在前面的示例中分解。
on run argv
tell application "Terminal"
do script "./myscanprogram " & quoted form of (item 1 of argv) & " 2>&1"
end tell
end run
既然你提到你是 AppleScript 的新手,它是否必须在 Terminal.app 中 运行 或 shell 就足够了? AppleScript 有命令 do shell script
打开 shell,执行文本,return 标准输出返回给你。
on run argv
do shell shell script "/path/to/myscanprogram " & quoted form of (item 1 of argv) & " 2>&1"
end run
最后但并非最不重要的一点。如果您不想要扫描程序的输出并且不希望 AppleScript 等到它完成,您可以使用
on run argv
do script "/path/to/myscanprogram " & quoted form of (item 1 of argv) & " &>/dev/null &"
end run