我在一个名为 find_java.bat 的批处理文件中有这个:
@echo off
for /f "delims=" %%a in ('C:\Programming\Android\android-sdk\tools\lib\find_java.exe') do (set java_exe=%%a)
问题是当我运行这个批处理文件时,我得到:
'C:\Programming\Android\android-sdk\tools\lib\find_java.exe' is not recognized as an internal or external command, operable program or batch file.
但是,当批处理文件仅包含:
@echo off
C:\Programming\Android\android-sdk\tools\lib\find_java.exe
它执行命令就好了。
我是编写批处理文件的新手,但是查看在线示例应该可以...
编辑:抱歉这么晚才重温。
我找到了解决方案。由于我仍然不太了解的原因,它与 ComSpec 有关。我的 ComSpec 是
%SystemRoot%\system32\cmd.exe;
我进入注册表并更改
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComSpec
从
%SystemRoot%\system32\cmd.exe;
至
C:\Windows\system32\cmd.exe
然后注销并重新登录,它神奇地工作了。%SystemRoot% 是 C:\Windows,所有其他系统变量都使用它,并且
@echo off
for /f "delims=" %%a in ('"C:\Programming\Android\android-sdk\tools\lib\find_java.exe"') do (set java_exe=%%a)
工作得很好,所以老实说我不明白,但看到Command Line FOR /F Fails可能比我更能理解它。