一个.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