Browser 从NodeJS中执行osascript(AppleScript)

Browser 从NodeJS中执行osascript(AppleScript),browser,node.js,applescript,exec,osascript,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 &

我知道我可能非常想念这个

但有人知道为什么这会不断返回错误吗

$ 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

中的双引号有关,可能只是一个引用问题。这个对我很有用:

$ 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。只需使用以下命令:


这通过当前节点版本中的反勾号简化

$ 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"`

非常感谢@sakra,它工作得非常好:)也为这个提示欢呼,说不需要applescript…是的,我真的需要在默认浏览器上打开一个url。再次感谢你的帮助
var cmd = `open "http://google.com"`