使用aapt转储时如何打印指定的参数

时间:2012-09-14 14:01:50

标签: android cmd substring apk aapt

我看到了here命令

aapt dump badging foo.apk

打印指定包的所有详细信息。

是否可以打印任何一个属性,比如说sdkversion? 像

这样的东西
aapt dump badging -sdkversion foo.apk

P.S我在Windows中使用命令提示符。

修改

我正在尝试将包名存储在变量中。 截至目前,我有这段代码

@echo off
for /f "delims=" %%a in ('aapt dump badging foo.apk') do (
     REM each line of the output
)

我能够检索输出的每一行。现在我必须从字符串中提取包名称。 例如,第一行是

  

package:name ='com.timeplusq.noob'versionCode ='15'versionName ='1.5'

在for循环的第一次迭代中检索。如何从中提取包名称。我认为字符串操作是直截了当的,事实并非如此。 那么如何从字符串中提取包名?

1 个答案:

答案 0 :(得分:1)

如果您使用的是Unix系统或在Windows上使用cygwin,则可以尝试以下命令:

aapt dump badging foo.apk | grep sdkVersion | sed -E "s/^[^:]+:\'(.*)\'$/\1/"
正则表达式将提取 grep 命令选择的行的值

编辑:

在Windows系统中,您可以使用以下脚本保存为.cmd

@echo off
set property=sdkVersion:'10'
set property=%property:sdkVersion=%
set property=%property:~2,-1%

echo.%property%