我正在编写一个可以解密文件的脚本。 我不会说很多,这是一个WIP看看我的bat文件的这一部分
if %2 equ jar (
set/a numdeox += 1
echo [*] [FW File: %numdeox% of %total%]Now Deodexing %~n1.%2
) else if %2 equ apk (
set/a numdeoxa += 1
echo - [APP: %numdeoxa% of %totala%]Now deodexing %~n1.%2
)
echo [*] Changing %~n1.odex to classes.dex, please wait...
java -jar baksmali.jar -a 19 -T ../../tools/inline.txt -d ../temp_framework -x %1
java -jar smali.jar -a 19 setapi.txt out -o classes.dex
del %1 /Q
rd out /Q /S
echo [*] Merging %~n1.%2 and classes.dex ,please wait...
7z.exe a -tzip %~n1.%2 classes.dex>nul
del classes.dex /Q
cd ..\..\
看一下'java jar baksmali.jar -a 19 -T ../../tools/inline.txt -d ../temp_framework -x% 1' 这里api是19.我创建了一个名为“setapi.txt”的txt文件,并询问用户在文本文件中输入的值将在此批处理脚本中自动设置为api。现在我的问题是用什么命令或行代替 19 ,这样无论用户在.txt文件中输入什么数字,它都会被Windows读取 例如 - java -jar baksmali.jar -a(此处命令)../../tools / inline.txt -d ../temp_framework -x%1
如果有人可以提供帮助,我将不得不感谢!或者,如果有人可以为此API事项建议其他替代方案。
答案 0 :(得分:2)
如果.txt文件只包含您想要的内容,您可以使用...
set /p API=<setapi.txt
但是如果setapi.txt包含的内容多于你想要的内容,我会在前面的代码之后使用变量子字符串......
set API=%API:~5, -1%
如果setapi.txt包含此字符串
API =“JAVA”
然后前面的代码将在您的变量中返回JAVA。
有关set / p look here
的更多信息有关变量子串look here
的更多信息答案 1 :(得分:0)
你可以这样做(假设文件只包含一行)
set API=
FOR /F %%i in (setapi.txt) do (
set API=%%i
)
echo API=%API%
...
java -jar baksmali.jar -a %API% -T ../../tools/inline.txt -d ../temp_framework -x %1
java -jar smali.jar -a %API% setapi.txt out -o classes.dex
编辑设置变量API,看看@Randy Rakestraw的解决方案。这是使用FOR循环的更聪明的方法。