命令后命令" dx --dex --output = classes.dex FINAL.jar"没有在批处理文件中执行

时间:2014-06-24 11:13:33

标签: batch-file command-line command-prompt

。    我正在尝试创建一个批处理文件,以避免重复的任务, 但是我执行以从.jar文件创建.dex文件的命令"dx --dex --output=classes.dex FINAL.jar"之后的命令不会执行。 "dx --dex --output=classes.dex FINAL.jar"命令之前的命令串行执行,此命令也成功执行,它不会给我任何错误。    但成功执行此命令后,命令提示符将自动退出,并且不执行其他命令。

以下是我的AUTO.bat文件:

del Freedom_Plus_Img_Cust.apk_signed.apk
del classes.dex
dx --dex --output=classes.dex FINAL.jar
ping 1.1.1.1 -n 1 -w 30000
move /Y XXXX.apk XXXX.zip
7z d XXXX.zip classes.dex
7z a XXXX.zip classes.dex
move /Y XXXX.zip XXXX.apk 
java -jar signapk.jar certificate.pem key.pk8 XXXX.apk

setlocal EnableDelayedExpansion
@ECHO off
set /p pathName=Enter The Value:
@echo %pathName%

所以请任何人都可以告诉我为什么会发生这种情况。任何解决方案都可能适用。 Thanx提前。 注意:我使用的是Windows XP。

1 个答案:

答案 0 :(得分:0)

我从MC ND重复正确的答案,从未回答的问题列表中删除这个已经回答的问题。

命令dx不是命令,也不是控制台应用程序。这是另一个批处理文件。

必须使用命令CALL在批处理文件中执行批处理文件,否则cmd.exe将继续批处理执行其他已执行的批处理文件,而不返回到初始批处理文件。

有关命令CALL的详细信息,请在命令提示符窗口call /?

中执行

使用2个批处理文件可以轻松验证此行为。

名称为 test1.bat 的批处理文件1:

@echo off
test2.bat
echo End of test1.bat
pause

名称为 test2.bat 的批处理文件2:

echo End of test2.bat
Pause

执行 test1.bat 会产生输出:

End of test2.bat
Press any key to continue . . .

cmd.exe不再执行 test2.bat 启动后的行。

test1.bat 的第二行更改为call test2.bat执行 test1.bat 的输出更改为:

End of test2.bat
Press any key to continue . . .
End of test1.bat
Press any key to continue . . .

提示:在批处理文件中,建议始终使用文件扩展名调用其他文件(EXE,COM,BAT,CMD,...)。这使得批处理文件的执行速度稍微快一些,因为Windows不需要在当前目录和环境变量name.*的所有目录中搜索PATH来查找应该执行的文件。如果批处理文件不能使用相对于当前工作目录的路径,则建议使用完整路径调用其他文件,以避免依赖PATH中的目录。