#browser #node.js #applescript #exec #osascript
#браузер #node.js #applescript #exec #osascript
Вопрос:
Я знаю, что, вероятно, мне этого очень не хватает,
но кто-нибудь знает, почему это продолжает возвращать ошибку?
$ node -v amp;amp; 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
?
Ответ №1:
Вероятно, просто проблема с цитированием. Это работает для меня:
$ node -v amp;amp; 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. Просто используйте команду открыть:
> var cmd = 'open "http://google.com"';
Комментарии:
1. большое спасибо @sakra, который сработал очень хорошо 🙂 также приветствую подсказку, в которой говорится, что applescript не был необходим … да, мне действительно нужно было открыть URL-адрес в браузере по умолчанию. Еще раз спасибо за вашу помощь
Ответ №2:
Это упрощено с помощью обратных ссылок в текущей версии узла
$ node -v amp;amp; 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) })
и для команды open
var cmd = `open "http://google.com"`