[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何删除低版本号的apk文件?

主要是手机apk常常更新,我又不愿意自动删除“七天前的”,以备不时之需

谢谢大神们!

比如这种,有的版本号位数一样,有的不一样,批处理可以删除吗?

想要的效果就是只保留高版本号的
1

评分人数

补充:有些文件有两个及以上的版本。

TOP

本帖最后由 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
)

可是这种没有加点的 效果不能达到……

TOP

本帖最后由 happy886rr 于 2016-4-1 09:48 编辑

回复 4# ariesdream
apk不需要判断文件名和版本号,apk的升级是靠判断VersionCode的值,apk名字是靠package: name后边的包名来区分。如re管理器的包名为com.speedsoftware.rootexplorer。
版本号只是给人看的,安卓apk升级时只判断VersionCode的值。需要一个非常厉害的第三方aapt.exe下载地址和批处理放一起
  1. @echo off
  2. for /f "delims=" %%A in ('dir /a-d /b /s *.apk') do (
  3. for /f "tokens=2,4 delims='" %%a in ('aapt dump badging "%%A"^|find /i "package: name="') do (
  4. for %%s in (call,%%%%a%%) do (
  5. if defined %%a (
  6. if %%b leq %%s (
  7. del "%%A" /f /q
  8. ) else (
  9. set "%%a=%%b"
  10. )
  11. ) else (
  12. set "%%a=%%b"
  13. )
  14. )
  15. )
  16. )
  17. set/p=Well Done^!
复制代码
1

评分人数

    • CrLf: 感谢提供线索技术 + 1

TOP

回复 5# happy886rr


    已收录

TOP

回复 6# CrLf
大师速度真快。aapt全名是Android Asset Packaging Tool 说明:安卓apk资源打包工具。 标签:分析 解析 打包 编译 .apk安装包
主要用来打包apk,当然分析apk能力也蛮棒。

TOP

回复 6# happy886rr


    done

TOP

返回列表