我正在尝试设置一个phonegap android应用程序(这是偶然的,只是一些介绍),并且有一个名为android.bat的批处理文件我需要能够全局运行。如果我把“android”放在cmd中,它应该运行批处理文件。我已经将它设置在“路径”环境变量中,重新启动cmd并重新启动计算机,无法在cmd中使用“android”导致“android未被识别为内部或外部命令”等。
很奇怪的是,在设置环境变量之前,从Run运行“android”不起作用,而现在它确实如此。很明显,Windows将其视为有效的全局变量。如果我将完整路径放入cmd,它就可以正常工作。
此外,当我在另一个位置创建另一个批处理文件并尝试相同时,会得到相同的结果。
所以我很难过。有什么想法吗?
答案 0 :(得分:0)
你在cmd中“放置”android是什么意思?您设置了什么环境变量 - 什么?
要从提示符运行android.bat
,您需要确保android.bat
位于PATH
的其中一个目录中。
要查看您的PATH
,只需在提示符下输入PATH
即可。您将看到一个以分号分隔的目录列表。将ANDOID.BAT
放在其中任何一个目录中,或添加一个新目录(c:\ belfry很受欢迎)并将其包含在PATH中。
话虽如此,CMD
检查的第一个目录是CURRENT目录,因此如果当前目录中有ANDROID
,android.bat
将作为命令运行,即使它不是在PATH
。
答案 1 :(得分:0)
恢复我已经理解的一切
1 - 有一个批处理文件(android.bat / cmd)
2 - 直接用完整路径调用它,它运行没有问题
3 - 从运行对话框中调用它,它运行没有问题(实际上它的工作方式与第2点相同)
4 - 批处理文件所在的目录包含在路径
中5 - 从另一个目录调用它不起作用
6 - 其他批处理文件也是如此
两种可能性。
路径变量包含无效或非正确引用/转义字符,系统在路径中查找程序时遇到问题。
或者,.CMD或.BAT不包含在PATHEXT变量中。它列出了在调用程序时在每个路径目录中检查的扩展名。
在命令行中输入SET PATH
,然后检查这两个选项中是否有正确的选项。
已编辑
似乎这些选项无法找到问题。让我们尝试不同的东西
在您的sdk中找到文件sdk\tools\lib\find_java.bat
。更改线条(应约为26和32)
for /f %%a in ('%~dps0\find_java.exe -s') do set java_exe=%%a
for /f %%a in ('%~dps0\find_java.exe -s -w') do set javaw_exe=%%a
要
for /f %%a in ('"%~dps0\find_java.exe" -s') do set java_exe=%%a
for /f %%a in ('"%~dps0\find_java.exe" -s -w') do set javaw_exe=%%a
然后再次尝试运行android.bat