找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 72570|回复: 17

[文件操作] [已解决]批处理如何使用WinRAR删除APK中的classes.dex?

[复制链接]
发表于 2016-2-13 12:53:46 | 显示全部楼层 |阅读模式
本人是个小白,以前有个类似的脚本,硬盘坏了丢了,就想自己写个脚本,试着写了个,运行却无效,请帮看看哪里有问题:
  1. @echo off
  2. COLOR 0A
  3. echo ======================================================================
  4. echo = 请输入 1 ^| 2 ^| 3 选择你需要的操作
  5. echo = 1. 删除 app文件夹  classes.dex
  6. echo = 2. 删除 priv-app文件夹  classes.dex   
  7. echo = 3. 删除 framework文件夹  classes.dex
  8. echo ======================================================================

  9. set choice=
  10. set /p choice= 选择你的操作(Your choice):
  11. IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
  12. if /i "%choice%"=="1" goto app
  13. if /i "%choice%"=="2" goto priv-app
  14. if /i "%choice%"=="3" goto framework
  15. echo. 选择无效,请重新输入
  16. echo. Choice is invalid, please enter again
  17. echo.
  18. goto MENU1

  19. :app
  20. echo. 正在删除 app文件夹  classes.dex...
  21. WinRAR d "app\*.*" classes.dex
  22. goto OKorNo%ERRORLEVEL%

  23. :priv-app
  24. echo. 正在删除 priv-app文件夹  classes.dex...
  25. WinRAR d priv-app\-classes.dex
  26. goto OKorNo%ERRORLEVEL%

  27. :framework
  28. echo. 正在删除 framework文件夹  classes.dex...
  29. WinRAR-d-framework\-classes.dex
  30. goto OKorNo%ERRORLEVEL%

  31. :OKorNo0
  32. CLS
  33. echo. ---------------------------------------
  34. echo. 已删除完成!
复制代码
请大神指点,谢谢!

评分

参与人数 1PB -2 收起 理由
pcl_test -2 勿发笼统无意义的标题

查看全部评分

发表于 2016-2-13 13:50:27 | 显示全部楼层
本帖最后由 ivor 于 2016-2-13 14:15 编辑
  1. :framework
  2. echo. 正在删除 framework文件夹  classes.dex...
  3. WinRAR-d-framework\-classes.dex
  4. goto OKorNo%ERRORLEVEL%
复制代码
命令开关  不要加-,后面两个call都没有提供压缩文件
  1. 用法:     rar <命令> -<参数 1> -<参数 N> <压缩文件> <文件...>
  2.                <@列表文件...> <解压路径\>
复制代码
  1. rar d 压缩文件 文件路径
复制代码
PS:rar 不支持APK文件
 楼主| 发表于 2016-2-13 15:56:03 | 显示全部楼层
回复 2# ivor
APK其实就是个ZIP文件,RAR应该可先打开再删除里面的文件的,记得以前用过一个脚本实现过
 楼主| 发表于 2016-2-13 16:12:32 | 显示全部楼层
回复 2# ivor


    改成这样
  1. for /r "app" %%a in (*.jar *.apk) do "WinRAR.exe" d -ibck "%%a" classes.dex
复制代码
就只会用RAR打开APP目录却不进行下一步操作
发表于 2016-2-13 16:45:07 | 显示全部楼层
本帖最后由 ivor 于 2016-2-13 16:54 编辑
  1. for /r .\app %%a in (*.apk *.jar) do (WinRAR.exe d -inul "%%a" classes.dex)
复制代码
我还不知道winrar也能支持命令呢 囧。。。
 楼主| 发表于 2016-2-13 19:37:13 | 显示全部楼层
回复 5# ivor


    还是只会用RAR打开APP目录却不进行下一步操作,我改成这样:
  1. for /r .\app %%a in (*.apk *.jar) do (WinRAR.exe d -x*\* -inul "%%a" classes.dex)
复制代码
也不行
发表于 2016-2-13 20:04:13 | 显示全部楼层
本帖最后由 ivor 于 2016-2-13 20:13 编辑

我建议你去掉循环for在控制台里面输入单个命令试一下,是否能正常运行。代码已经测试过我的电脑没问题,能正常删除classes.dex
  1. WinRAR.exe d -inul "xx.apk" classes.dex
复制代码

评分

参与人数 1技术 +1 收起 理由
穿越 + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-2-14 09:51:03 | 显示全部楼层
本帖最后由 穿越 于 2016-2-14 10:01 编辑

回复 7# ivor

奇怪了,还是只打开文件目录

改成目录中有的APK文件名也不行:
发表于 2016-2-14 10:56:45 | 显示全部楼层
回复 8# 穿越


    有可能是版本问题,我的rar版本是5.01

我的单条命令执行没问题,路径还建了和你一样的
 楼主| 发表于 2016-2-14 19:24:39 | 显示全部楼层
回复 9# ivor


    我的是5.3.1,不应该不行吧,而且换了个版本也不行
发表于 2016-2-14 19:43:53 | 显示全部楼层
回复 10# 穿越


    排除法,有可能是很简单,但是你没考虑到
发表于 2016-2-14 23:19:10 | 显示全部楼层
在我的机器上,把WinRAR.exe文件单独提取出来运行,变成评估版本啦~
这样试下:
把单独提出来的WinRAR.exe删除,假设WinRAR安装在C:\Program Files\WinRAR目录
  1. path C:\Program Files\WinRAR;%path%
  2. WinRAR.exe d -inul "456.apk" classes.dex
复制代码

评分

参与人数 1技术 +1 收起 理由
穿越 + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-2-15 19:31:53 | 显示全部楼层
回复 12# WHY
非常感谢!同时也非常感谢ivor兄弟

我之前在文件夹中放了个单文件版的RAR,看来是RAR版本有冲突,造成脚本无效,刚删除了RAR,用了path C:\Program Files\WinRAR;%path% 就成功了,同时把脚本优化了下,请帮看看还有需改进的地方吗?
  1. @echo off
  2. mode con cols=100 lines=30
  3. TITLE 删除dex
  4. COLOR 0A
  5. echo. -----------------------------------------------------------------
  6. echo. 确认各文件夹中文件放置正确
  7. echo. 确认各文件夹中无需备份文件
  8. echo. 准备好后按任意键继续...
  9. echo. Press any key to continue...
  10. echo. -----------------------------------------------------------------
  11. pause >NUL 2>NUL
  12. CLS
  13. path C:\Program Files\WinRAR;%path% pid %%i 1>nul 2>nul

  14. :MENU1
  15. CLS
  16. echo ======================================================================
  17. echo = 请输入 1 ^| 2 ^| 3 ^| 4 ^| 5 选择你需要的操作
  18. echo = 1. 删除 app文件夹  classes.dex
  19. echo = 2. 删除 priv-app文件夹  classes.dex   
  20. echo = 3. 删除 framework文件夹  classes.dex
  21. echo = 4. 删除 framework与app 文件夹  classes.dex
  22. echo = 5. 退出
  23. echo ======================================================================

  24. set choice=
  25. set /p choice= 选择你的操作(Your choice):
  26. IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
  27. if /i "%choice%"=="1" goto app
  28. if /i "%choice%"=="2" goto priv-app
  29. if /i "%choice%"=="3" goto framework
  30. if /i "%choice%"=="4" goto frapp
  31. if /i "%choice%"=="5" goto EXIT
  32. echo. 选择无效,请重新输入
  33. echo. Choice is invalid, please enter again
  34. echo.
  35. goto MENU1

  36. :app
  37. echo. 正在删除 app文件夹  classes.dex...
  38. for /r .\app %%a in (*.apk *.jar) do (WinRAR.exe d -inul "%%a" classes.dex)
  39. goto MENU1

  40. :priv-app
  41. echo. 正在删除 priv-app文件夹  classes.dex...
  42. for /r .\priv-app %%a in (*.apk *.jar) do (WinRAR.exe d -inul "%%a" classes.dex)
  43. goto MENU1

  44. :framework
  45. echo. 正在删除 framework文件夹  classes.dex...
  46. for /r .\framework %%a in (*.apk *.jar) do (WinRAR.exe d -inul "%%a" classes.dex)
  47. goto MENU1

  48. :frapp
  49. echo. 正在删除 framework/app 文件夹  classes.dex...
  50. for /r .\framework %%a in (*.apk *.jar) do (WinRAR.exe d -inul "%%a" classes.dex)
  51. for /r .\app %%a in (*.apk *.jar) do (WinRAR.exe d -inul "%%a" classes.dex)
  52. goto MENU1

  53. :EXIT
  54. exit
复制代码
发表于 2016-2-17 21:50:42 | 显示全部楼层
本帖最后由 ivor 于 2016-2-17 22:01 编辑

回复 13# 穿越
  1. :MENU1
  2. set /p choice= 选择你的操作(Your choice):
  3. IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
  4. if /i "%choice%"=="1" call :delFile app
  5. if /i "%choice%"=="2" call :delFile priv-app
  6. if /i "%choice%"=="3" call :delFile framework
  7. if /i "%choice%"=="4" call :delFile frapp
  8. if /i "%choice%"=="5" goto :EOF
  9. goto MENU1

  10. :delFile folder
  11. echo. 正在删除 %1文件夹  classes.dex...
  12. for /r .\%1 %%a in (*.apk *.jar) do (WinRAR.exe d -inul "%%a" classes.dex)
  13. goto MENU1
复制代码
标签4合一

评分

参与人数 1技术 +1 收起 理由
穿越 + 1 又学到一招

查看全部评分

发表于 2016-2-18 07:34:02 | 显示全部楼层
回复 13# 穿越


    path C:\Program Files\WinRAR;%path%

万一是win7 64系统。

应该是C:\Program Files (x86)\WinRAR吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:51 , Processed in 0.015022 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表