。
我正在尝试创建一个批处理文件,以避免重复的任务,
但是我执行以从.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。
答案 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
中的目录。