在ApkTool执行!name之后!变量不再按预期扩展。我不确定这是怎么回事,也不确定如何解决。
if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit
@echo off
setlocal ENABLEDELAYEDEXPANSION
cd /d "%~dp0"
for %%I in ("%~1") do (
set name="..\Compiled_apk\%%~nxI"
apktool b "%%~I" -f -o "!name!.apk"
zipalign -f 4 "!name!.apk" "!name!.temp"
del "!name!.apk"
ren "!name!.temp" "!name!.apk"
apksigner sign -v --key "..\Program_Files\testkey.pk8" --cert "..\Program_Files\testkey.x509.pem" "!name!.apk"
)
exit
答案 0 :(得分:2)
在不使用call
的情况下启动第二个批处理脚本时,原始脚本将停止并将控制权转移到第二个脚本。第二个脚本完成后,控制不会返回到原始脚本(因为它已停止)。
但是,如果您使用call
启动第二个脚本,则原始脚本会暂停并且控制权只会暂时移交给第二个脚本。第二个脚本完成后,控制权将返回到原始脚本,并从上次停止的地方开始。
apktool b "%%~I" -f -o "!name!.apk"
Google建议zipalign
和apksigner
是实际的可执行文件,因此您无需调用它们。