EnableDelayedExpansion работает только для первой команды - PullRequest
0 голосов
/ 15 октября 2018

После того, как 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

1 Ответ

0 голосов
/ 16 октября 2018

Когда вы запускаете второй пакетный скрипт без использования call, оригинальный скрипт останавливается и управление передается второму скрипту.После завершения второго сценария управление не возвращается к исходному сценарию (так как он остановлен).

Однако, если вы используете call для запуска второго сценария, исходный сценарий приостанавливается, и управление приостанавливается только временно.передал второй сценарий.После завершения второго сценария управление возвращается к исходному сценарию и начинает с того места, на котором остановился.

apktool b "%%~I" -f -o "!name!.apk"

Google предполагает, что zipalign и apksigner являются действительными исполняемыми файлами, поэтому вам не нужноназывать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...