うーん...あなたの本当の質問は(質問のタイトルにもかかわらず)次のようです:
私が達成しようとしているのは、javac.exe ファイルを見つけて C:\kysumicomp... にコピーするバッチ ファイルです。
あなたは物事を複雑にしすぎていると思います。
これを試してください (オプションFOR /?
の詳細については、 を参照してください)。/R
FOR /R "%ProgramFiles%" %%a IN (.) DO (
IF EXIST "%%~a\javac.exe" COPY /Y "%%~a" C:\kysumicomp\
)
これにより、すべての出現がディレクトリにコピーjavac.exe
され、一方が他方を上書きすることに注意してください(元のソリューションの問題もあります)。最初のヒットの後に停止したい場合は、ループを早期に終了する必要があります。
FOR /R "%ProgramFiles%" %%a IN (.) DO (
IF EXIST "%%~a\javac.exe" (
COPY "%%~a" C:\kysumicomp\
GOTO END
)
)
:END
最後に、より簡単な解決策は、ある場合は、にある をコピーするjavac.exe
ことPATH
です。
FOR %%a IN (javac.exe) DO (
IF EXISTS "%%~$PATH:a" (
COPY "%%~$PATH:a" C:\kysumicomp\
)
)
次に、質問のタイトルがすでに達成しようとしているものと一致していないので、まったく別のことをする必要があるのではないかと思います。javac.exe
そもそもなぜ自分のディレクトリにコピーしているのですか?