0

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

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

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

所以我很难过。有任何想法吗?

4

2 回答 2

0

只是为了恢复我已经明白了一切

1 - 有一个批处理文件(android.bat/cmd)

2 - 直接用完整路径调用它,它运行没有问题

3 - 从运行对话框调用它,它运行没有问题(实际上它的工作方式与第 2 点相同)

4 - 批处理文件所在的目录包含在路径中

5 - 从另一个目录调用它不起作用

6 - 其他批处理文件也是如此

两种可能。

路径变量包含无效或未正确引用/转义的字符,并且系统在路径中查找程序时遇到问题。

或者,.CMD 或 .BAT 不包含在 PATHEXT 变量中。它列出了调用程序时在路径的每个目录中检查的扩展名。

在命令行中,键入SET PATH并检查这两个选项中的任何一个是否正确。

已编辑

似乎这些选项没有找到问题所在。让我们尝试一些不同的东西

sdk\tools\lib\find_java.bat在您的 sdk 中找到该文件。改变线条(应该是 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

于 2013-11-14T15:13:25.367 回答
0

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

要从android.bat提示符运行,您需要确保它android.bat位于您的PATH.

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

话虽如此,所检查的第一个目录CMD是 CURRENT 目录,因此ANDROID如果android.bat它在您的当前目录中,即使它不在PATH.

于 2013-11-14T13:32:04.313 回答