2011-06-07 57 views
1

我知道我可能缺少这种巨大的,EXEC osascript(AppleScript的)从内部的NodeJS

但任何人都知道为什么这样下去返回一个错误?

$ 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中的双引号有关?

回答

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\"'; 
+0

感谢很多@sakra一套很管用:)也欢呼给小费说,没有AppleScript的必要...是我真的需要打开的默认浏览器的URL。再次感谢你的帮助 – zanona 2011-06-07 12:25:48