来自NodeJS的exec osascript(AppleScript)

时间:2011-06-07 08:51:11

标签: browser node.js applescript exec osascript

我知道我可能错过了这个,

但是有人知道为什么这会导致错误返回?

$ node -v && node
v0.4.6
> var cmd = 'osascript -e "open location \"http://google.com\""';
> require('child_process').exec(cmd, function (error, stdout, stderr) { console.log(error); });

//Error message
> { 
    stack: [Getter/Setter],
    arguments: undefined,
    type: undefined,
    message: 'Command failed: 15:20: syntax error: A “:” can’t go after this identifier. (-2740)\n',
    killed: false,
    code: 1,
    signal: null 
}

也许它与cmd中的双引号有关?

2 个答案:

答案 0 :(得分:3)

可能只是一个引用问题。这个对我有用:

$ node -v && node
v0.4.8
> var cmd = 'osascript -e \'open location \"http://google.com\"\'';
> require('child_process').exec(cmd, function (error, stdout, stderr) { console.log(error); });

顺便说一句,如果您只是想打开一个URL,则无需通过AppleScript。只需使用open命令:

> var cmd = 'open \"http://google.com\"';

答案 1 :(得分:0)

通过当前节点版本中的反引号可以简化此操作

$ node -v && node
v10.5.0
> let cmd = `osascript -e 'open location "http://google.com"'`
> require('child_process').exec(cmd, function (error, stdout, stderr) { console.log(error) })

和打开命令

var cmd = `open "http://google.com"`