有一个命令可以减轻管理Android手机软件包的痛苦,
adb shell pm uninstall org.kde.necessitas.example.one
adb shell pm uninstall org.kde.necessitas.example.two
但我有很多手机,只想删除特定域中的所有软件包。
无法通过
完成adb shell pm uninstall org.kde.necessitas.example.*
你的建议是什么?
答案 0 :(得分:4)
您可以在批处理文件中使用以下内容:(我假设是Windows)
adb shell pm list packages org.kde.necessitas.example > packages.txt
for /F "tokens=2 delims=:" %%a in (packages.txt) do adb shell pm uninstall %%a
您可以更进一步,将搜索文本作为参数:
adb shell pm list packages %1 > packages.txt
for /F "tokens=2 delims=:" %%a in (packages.txt) do adb shell pm uninstall %%a
这会将pm list packages
命令的输出传递到文本文件中,然后循环遍历文本文件的每一行。它为行中的每个第二个标记调用adb shell pm uninstall
,在这种情况下是包名称。
答案 1 :(得分:1)
如果你自己坐在手机壳上,你可以这样做(如果你愿意,可以在一条线上):
for i in $(pm list packages com.your.domain ) ; do
pm uninstall ${i#*:} ;
done
如果你在主机上而且你正在使用Unixy - Linux,Mac,Cygwin - 那么类似的东西也可以在那里工作,但是你需要推送'adb shell':
for i in $(adb shell pm list packages com.your.domain ) ; do
adb uninstall ${i#*:} ;
done
由于您正在谈论从所有连接的手机中删除软件包,您还需要另一个循环:
for d in $(adb devices | sed '/List/d; /\*/d; s/device$//') ; do
for i in $(adb -s $d shell pm list packages com.your.domain ) ; do
adb -s $d uninstall ${i#*:} ;
done
done
答案 2 :(得分:0)
对于mac用户:
mongoose's setPassword function