web-dev-qa-db-ja.com

cmderがユーザーパス変数をインポートしないのはなぜですか?

Cmderのpath変数には、システムパス変数からインポートされたパスのみが含まれます。通常のコマンドシェルでは、システムパスとユーザーパスが連結されます。

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%には、明らかにシステムパスのみが含まれています。

どうすればユーザーパスを追加できますか?

7
xing

すでにご存知のとおり、init.batの%PATH%にはユーザーパスが含まれています。ただし、問題は完全にcmdersの障害ではありません。それは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とバッチに関する私の知識は非常に少なく、これらは試行錯誤によって行った観察にすぎません。私はこれを見つけて共有したいと思いました。

6
Quoc An Ha

x1Bapeは正しいですが、PATHを変更する代わりに、vendor/init.batで修正することもできます。

:: Enhance Pathの下の行を変更するだけです

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

だからこんな感じ

@set "PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%"
4
S.A.

絶対に間違っています。

cmderは実際にはConEmuです。また、ConEmuは変数を「インポート」しません。代わりに、実際にすべてのWindowsアプリケーションが行うように、ConEmuは親プロセスから変数を継承します。これは、ProcessExplorerで簡単に確認できます。

0
Maximus