标题: [文件操作] 批处理如何删除低版本号的apk文件? [打印本页]
作者: ariesdream 时间: 2016-3-31 14:34 标题: 批处理如何删除低版本号的apk文件?
主要是手机apk常常更新,我又不愿意自动删除“七天前的”,以备不时之需
谢谢大神们!
比如这种,有的版本号位数一样,有的不一样,批处理可以删除吗?
想要的效果就是只保留高版本号的
作者: ariesdream 时间: 2016-3-31 14:37
补充:有些文件有两个及以上的版本。
作者: ariesdream 时间: 2016-3-31 14:49
本帖最后由 ariesdream 于 2016-3-31 14:51 编辑
回复 ariesdream
aapt解析一下就行。显示的是utf-8转下码就能显示中文。自己加句for啥都有了。
happy886rr 发表于 2016-3-31 14:40
So……我试过了用类似的bat来修改并没有成功,可否请大神把正确的完整贴出来?
比如用这种
@echo off & setlocal enabledelayedexpansion
pushd "D:\test\"
if "%1" == "OK" (
for /f "delims=" %%a in ('dir /b/s^|findstr \.[0-9][0-9]*$') do (
set "str=0000000000%%~xa"
set "str=!str:.=!"
echo,%%~dpna/!str:~-10!%%~xa
)
) else (
for /f "tokens=1*delims=/" %%a in ('"%~0" OK^|sort /r') do (
if /i "%%a" == "!file!" (
echo Del "%%a%%~xb"
) else set "file=%%a"
)
pause
)
可是这种没有加点的 效果不能达到……
作者: happy886rr 时间: 2016-3-31 16:45
本帖最后由 happy886rr 于 2016-4-1 09:48 编辑
回复 4# ariesdream
apk不需要判断文件名和版本号,apk的升级是靠判断VersionCode的值,apk名字是靠package: name后边的包名来区分。如re管理器的包名为com.speedsoftware.rootexplorer。
版本号只是给人看的,安卓apk升级时只判断VersionCode的值。需要一个非常厉害的第三方aapt.exe下载地址和批处理放一起- @echo off
- for /f "delims=" %%A in ('dir /a-d /b /s *.apk') do (
- for /f "tokens=2,4 delims='" %%a in ('aapt dump badging "%%A"^|find /i "package: name="') do (
- for %%s in (call,%%%%a%%) do (
- if defined %%a (
- if %%b leq %%s (
- del "%%A" /f /q
- ) else (
- set "%%a=%%b"
- )
- ) else (
- set "%%a=%%b"
- )
- )
- )
- )
- set/p=Well Done^!
复制代码
作者: CrLf 时间: 2016-3-31 17:21
回复 5# happy886rr
已收录
作者: happy886rr 时间: 2016-3-31 17:43
回复 6# CrLf
大师速度真快。aapt全名是Android Asset Packaging Tool 说明:安卓apk资源打包工具。 标签:分析 解析 打包 编译 .apk安装包
主要用来打包apk,当然分析apk能力也蛮棒。
作者: CrLf 时间: 2016-3-31 19:33
回复 6# happy886rr
done
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |