2011-06-07 30 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