6

Переменная пути в cmder содержит только те пути, которые импортированы из системной переменной пути. Находясь в обычной командной оболочке, системный путь и пользовательский путь будут объединены.

Я нашел в cmder_dir\vendor\init.bat следующие строки:

:: Enhance Path
@set git_install_root=%CMDER_ROOT%\vendor\msysgit
@set PATH=%CMDER_ROOT%\bin;%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%git_install_root%\share\vim\vim74;%CMDER_ROOT%;%PATH%

Но, очевидно, только системный путь включен в% PATH% выше.

Как я могу добавить к нему путь пользователя?

3 ответа3

6

Как вы уже узнали, %PATH% в файле init.bat содержит путь пользователя. Проблема, однако, не полностью виновна. Это как-то связано с DOS или командным файлом.

Например с PATH как

C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\

Линия

@set PATH=%OTHER_PATHS%;%PATH%

заменяется на

@set PATH=C:\OTHER\PATHS;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\

И это, очевидно, интерпретируется как

@set PATH=C:\OTHER\PATHS;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & 
MySQL Utilities 1.5.4 1.5\ #separate line/command

Это привело к тому, что cmder попытался выполнить MySQL с остальной частью строки в качестве параметров.

Это явление также приводило к тому, что ваш пользовательский путь падал с пути, который использует cmder, в результате чего вы не могли использовать свои пользовательские пути. Выводил ли cmder что-нибудь при запуске или пытался что-то выполнить?

Для других людей , имеющие проблемы с этим, просто обернуть путь с & двойными кавычками. Так что в моем случае это было бы

"C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\"

Это исправило это для меня.

Мои знания по DOS и пакетным программам довольно малы, это всего лишь наблюдения, которые я сделал методом проб и ошибок. Я только что узнал об этом и хотел поделиться.

4

x1Bape прав, но в качестве альтернативы вы можете исправить это в vendor/init.bat вместо изменения PATH.

Просто измените строку под :: Enhance Path

@set PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%

Так это выглядит так

@set "PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%"
0

Абсолютно неправильно.

cmder на самом деле является ConEmu. И ConEmu не "импортирует" переменные. Вместо этого, как и на самом деле все приложения Windows, ConEmu наследует переменные от родительского процесса. Это можно легко проверить с помощью ProcessExplorer.

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