exec osascript (AppleScript) изнутри NodeJS - PullRequest
1 голос
/ 07 июня 2011

Я знаю, что, наверное, очень скучаю по этому

но кто-нибудь знает, почему это возвращает ошибку?

$ 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 ]

3 голосов
/ 07 июня 2011

Вероятно, просто проблема цитирования.Это работает для меня:

$ 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 голосов
/ 02 июля 2018

Это упрощено с помощью обратных кавычек в текущей версии узла

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