Board logo

标题: [系统相关] 卸载小工具之批处理版 [打印本页]

作者: cjiabing    时间: 2009-6-9 15:16     标题: 卸载小工具之批处理版

最近作品较多,随便发一个,写得不好,见笑~!
目前没有提供注册表的操作功能。
这个程序还是太多临时文件,没办法,初稿,经常要检查运行状态和结果,没有临时文件不行。
比较懒,不改了,觉得临时文件也没多大坏处!~

  1. @echo off
  2. echo.
  3. echo                   卸载小工具 @xp   
  4. echo.
  5. echo                   by:甲兵时代 http://hi.baidu.com/cjiabing
  6. echo.
  7. echo   本工具读取根目录和注册表中的卸载信息,并且能根据需要找出卸载程序
  8. echo   如果你需要卸载某个程序,请执行弹出的卸载程序,不需要请点取消。
  9. echo   小心使用,以免错误卸载重要程序!
  10. echo.
  11. pause
  12. ok
  13. echo.
  14. call ok1
  15. call ok2
  16. exit
  17. ok1
  18. echo.
  19. echo 1、查找根目录中的反安装程序
  20. echo.
  21. echo 请稍后……
  22. dir /s /b "%SYSTEMDRIVE%\un*.exe" >>uninst0.txt
  23. echo. >>uninst0.txt
  24. findstr /n .* uninst0.txt >>uninst0.txt
  25. :hang
  26. type uninst0.txt
  27. echo.
  28. echo.
  29. set /p hang=★请输入需要卸载路径前面的【序号】(退出请输入 b ):
  30. for /f "tokens=3* delims=:"   %%i in ('findstr   /b   "%hang%"   uninst0.txt')   do start   %SYSTEMDRIVE%"%%~i"%%~j
  31. cls
  32. if %hang% == b   del uninst0.txt   & goto :eof  
  33. if not %hang% == b goto hang
  34. ok2
  35. echo.
  36. echo     2、查找注册表中的反安装信息
  37. echo.
  38. echo 请稍后……
  39. reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s >>uninst.txt
  40. echo. >>uninst.txt
  41. echo. ◆◇◆◇◆ ◆◇◆◇◆ ◆◇◆◇◆ ◆◇◆◇◆ >>uninst.txt
  42. echo. >>uninst.txt
  43. reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s >>uninst.txt
  44. :cha
  45. echo.
  46. set /p inf=★请输入需要查找的卸载程序【名称】(退出请输入 b ):
  47. if   %inf% == b del uninst1.txt,uninst.txt & exit
  48. echo.
  49. echo     ☆以下是查询到的信息:
  50. echo.
  51. find /i "%inf%" uninst.txt
  52. echo.
  53. echo     ☆以下是提取到的路径:
  54. echo.
  55. for /f   "tokens=3,*"   %%i in ('find /i "%inf%" uninst.txt') do echo %%i %%j >>"%inf%".txt
  56. echo. >>"%inf%".txt
  57. findstr /n .* "%inf%".txt >>"%inf%".txt
  58. echo.
  59. echo     ☆以上 un 开头的是可以卸载的程序: >>"%inf%".txt
  60. echo.
  61. type "%inf%".txt
  62. echo.
  63. echo.
  64. set /p hang=★请输入需要卸载路径前面的【序号】(退出请输入 b ):
  65. for /f "tokens=2 delims=: "   %%i in ('findstr   /b   "%hang%"   "%inf%".txt')   do   echo %%~i>>nul   &for /f "tokens=3 delims=:"   %%a in ('findstr   /b   "%hang%"   "%inf%".txt')   do   call "%%~i:%%~a"
  66. echo.
  67. cls
  68. del "%inf%".txt
  69. if   %inf% == b   del uninst.txt & exit
  70. if not %inf% == b   goto cha
复制代码

[ 本帖最后由 cjiabing 于 2009-6-9 17:51 编辑 ]




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2