Ответ 1
Ну, я исправил его.
Или что-то в этом роде.
Вместо использования
"start " + path
Я использовал
"%SystemRoot%\\explorer.exe \"" + path + "\""
Обратите внимание на кавычки и косые черты.
Я использую appjs, и я хочу выполнить команду для открытия папки.
var path = __dirname + '/folder to open/';
// path = C:\Program Files\myapplication/folder to open/
require("child_process").exec("start " + path);
Не удалось найти файл C:\Program
Я уже пытался избежать пробелов, это не сработало.
var path = __dirname + '/folder to open/';
path = path.replace(' ', '\ ');
// path = C:\Program Files\myapplication/folder to open/
require("child_process").exec("start " + path);
Когда я помещаю путь между кавычками, ни одна папка не открывается, а только другое приглашение.
var path = "\"" + __dirname + "/folder to open/\"";
path = path.replace(' ', '\ ');
// path = "C:\Program Files\myapplication/folder to open/"
require("child_process").exec("start " + path);
Связанная ошибка https://github.com/isaacs/npm/pull/2479
У кого-нибудь есть исправление или обход?
Ну, я исправил его.
Или что-то в этом роде.
Вместо использования
"start " + path
Я использовал
"%SystemRoot%\\explorer.exe \"" + path + "\""
Обратите внимание на кавычки и косые черты.
Чтобы открыть путь, чем содержит пробелы, вы должны заменить двойную обратную косую черту.
В вашем коде вы избегаете символа пробела:
"\ "
Что вам нужно сделать, так это вывести символ обратной косой черты, чтобы он попал в выходную строку:
"\\ "
Попробуйте следующее:
var path = __dirname + '/folder to open/';
// Notice the double-backslashes on this following line
path = path.replace(/ /g, '\\ ');
require("child_process").exec("start " + path);
это работает для меня
f= file.replace(/ /g,"\\\ ")