环境变量在运行但不是cmd

时间:2013-11-14 13:22:16

标签: windows-8 environment-variables

我正在尝试设置一个phonegap android应用程序(这是偶然的,只是一些介绍),并且有一个名为android.bat的批处理文件我需要能够全局运行。如果我把“android”放在cmd中,它应该运行批处理文件。我已经将它设置在“路径”环境变量中,重新启动cmd并重新启动计算机,无法在cmd中使用“android”导致“android未被识别为内部或外部命令”等。

很奇怪的是,在设置环境变量之前,从Run运行“android”不起作用,而现在它确实如此。很明显,Windows将其视为有效的全局变量。如果我将完整路径放入cmd,它就可以正常工作。

此外,当我在另一个位置创建另一个批处理文件并尝试相同时,会得到相同的结果。

所以我很难过。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你在cmd中“放置”android是什么意思?您设置了什么环境变量 - 什么?

要从提示符运行android.bat,您需要确保android.bat位于PATH的其中一个目录中。

要查看您的PATH,只需在提示符下输入PATH即可。您将看到一个以分号分隔的目录列表。将ANDOID.BAT放在其中任何一个目录中,或添加一个新目录(c:\ belfry很受欢迎)并将其包含在PATH中。

话虽如此,CMD检查的第一个目录是CURRENT目录,因此如果当前目录中有ANDROIDandroid.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