1

Я ищу короткую команду, которую можно выполнить в командной оболочке Windows 10 (cmd), или в powershell или в git-bash для Windows, которая заменила бы переменные элементы PATH Environment variable , чтобы заключить в кавычки те, которые имеют пробелы?

Реальная проблема, с которой я сталкиваюсь, заключается в том, что когда я набираю команду в git-bash

$ sfdx force:org:create -s -f config/project-scratch-def.json -a "default scratch org"

Я получаю ошибку

'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

Я думаю, что эта ошибка происходит из-за того, что инструмент sfdx находится в "C:\Program Files\Salesforce CLI\bin", и, вероятно, он должен быть заключен в двойные кавычки в пути, если я не ошибаюсь.

Поэтому, когда я выполняю команду path в cmd я вижу

D:\Git\SFDX\MySFDXProject>path
PATH=C:\Python27\;C:\Ruby23\bin;C:\Program Files\Salesforce CLI\bin

поэтому я предполагаю, что C:\Program Files\Salesforce CLI\bin должен быть заключен в двойные кавычки в пути, но я хочу массовые двойные кавычки для всех элементов пути, у которых есть пробелы в пути, чтобы любая другая команда не потерпела неудачу.

Поэтому, если у меня путь C:\Python27\;C:\Ruby23\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\Salesforce CLI\bin Я хочу, чтобы он преобразовывался командой в C:\Python27\;C:\Ruby23\bin;"C:\Program Files\Microsoft VS Code\bin";"C:\Program Files\Salesforce CLI\bin" и сохраняются в переменной среды PATH.

Как я могу это сделать?

1 ответ1

0

Создайте файл, который изменяет путь, создает дочерний процесс, вызывает команду sfdx в дочернем процессе и распечатывает результат. Например:

// env-change.js
process.env.path=process.env.path.replace(/Program Files/g,'"Program Files"');
const { exec } = require('child_process');

function result(err, stdout, stderr){
  if (err) {
    console.error(err);
    return;
  }
  console.log(stdout);
  console.log(process.env.path);
}

exec('sfdx force:org:create -s -f config/project-scratch-def.json -a "default scratch org"', result);

Затем запустите его так:

node env-change.js

Рекомендации

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .