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%には、明らかにシステムパスのみが含まれています。
どうすればユーザーパスを追加できますか?
すでにご存知のとおり、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とバッチに関する私の知識は非常に少なく、これらは試行錯誤によって行った観察にすぎません。私はこれを見つけて共有したいと思いました。
x1Bapeは正しいですが、PATHを変更する代わりに、vendor/init.bat
で修正することもできます。
:: Enhance Path
の下の行を変更するだけです
@set PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%
だからこんな感じ
@set "PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%"
絶対に間違っています。
cmderは実際にはConEmuです。また、ConEmuは変数を「インポート」しません。代わりに、実際にすべてのWindowsアプリケーションが行うように、ConEmuは親プロセスから変数を継承します。これは、ProcessExplorerで簡単に確認できます。