【发布时间】:2012-06-21 21:30:20
【问题描述】:
我在一个名为 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 可能比我更能理解它。
【问题讨论】:
-
只是一个猜测:也许是双斜线? 'C:\\Programming\\Android\\android-sdk\\tools\\lib\\find_java.exe'
标签: for-loop batch-file windows-7-x64