1

Windowsのパスシステム変数から実行可能ファイルへのパスを見つけて変数に割り当てたい。(unix 'which' コマンド)

cmd.exe を開いて次のように入力すると、

for %i in (cmd.exe) do @set cmdPath=%~$PATH:i

動作します(「echo %cmdPath%」でテストします)

しかし、この行を .bat ファイルにコピーすると、実行中に「~$PATH:i was not expected in this moment」というエラーがスローされます。

原因がわからないのですが、どうすれば直りますか?

4

1 に答える 1

1

FOR ドキュメントを読んでください (タイプhelp forまたはfor /?)。

バッチ プログラムで FOR コマンドを使用するには、%variable の代わりに %%variable を指定します。変数名は大文字と小文字が区別されるため、%i は %I とは異なります。

バッチ ファイルでは、パーセントを 2 倍にするだけです。

for %%i in (cmd.exe) do set cmdPath=%%~$PATH:i

%COMSPEC%cmd.exe へのフル パスが既に保持されている必要があることに注意してください。

于 2013-02-15T15:43:01.987 に答える