如何列出多个apk的软件包名称?



一个.bat代码,用于将文件夹中多个.apk文件的package_names列出到具有以下结构的.txt文件中:

com.a.a
com.b.b

只需将文件夹路径发送到我的 bat 文件即可。 例如,包含一些.apk文件的b.bat "C:apks"必须创建一个.txt文件并写入所有文件的所有package_names。

我试图找到一种方法,但无法用于窗口和多个apk文件。

那我该怎么做呢?

您可以使用aapt.exe获取软件包名称。例如:

aapt dump badging pathtofile.apk | findstr /C:"package: name"

要循环访问文件,可以使用FOR(在命令提示符本身中,否则为双百分号(:

for %i in (C:apks*.apk) do @echo %i

因此,合并后,批处理文件应如下所示:

@for %%i in (C:apks*.apk) do @aapt dump badging "%%i" | findstr /C:"package: name"

要将其写入文件,请执行以下操作:

my_batch_file_that_calls_aapt.bat > my_text_file.txt

或者更通用一点:

@echo off
SET FOLDER=%1
SET OUTPUT=%2
break>%OUTPUT%
for %%i in (%FOLDER%*.apk) do aapt dump badging "%%i" | findstr /C:"package: name" >> %OUTPUT%

在尝试任何这些之前aapt.exe请确保您PATH


为了全面了解情况,这就是您在Linux/MacOS X上的做法:

ls /path/to/my/apks/*.apk | xargs -L 1 aapt dump badging | grep package: name

首先,您需要下载aapt,并将其添加到path中。 接下来,您需要在该文件夹中打开cmd。 然后,您可以运行以下命令来列出所有包名称:

for /f "delims=" %i in ('dir /b /on *.apk') do for /f "tokens=2 delims=: " %j in ('aapt dump badging "%i" ^| findstr /r /c:"^package: name="') do echo %j >> output.txt

如果要在一个文件中列出文件名和包名称,请使用以下命令:

for /f "delims=" %i in ('dir /b /on *.apk') do for /f "tokens=2 delims=: " %j in ('aapt dump badging "%i" ^| findstr /r /c:"^package: name="') do echo %~ni %j >> output.txt

最新更新