有一个命令可以减轻管理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.*
你有什么建议吗?
发布于 2013-03-17 16:37:56
您可以在批处理文件中使用以下内容:(我假设是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
,在本例中是包名。
发布于 2013-09-25 16:50:30
如果你坐在手机的外壳里,你可以这样做(如果你愿意,全部在一条线路上):
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
发布于 2017-07-07 23:03:59
对于mac用户:
adb shell pm list packages com.your.domain \
| cut -d ':' -f 2 \
| tr -d '\r' \
| xargs -L1 -t adb uninstall
https://stackoverflow.com/questions/15458909
复制相似问题