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

[文件管理] ExtractMSI v2 批处理解压msi

好吧,我很久没来这个论坛了,感觉不像以前这样热闹了~ 也许是大家都对批处理失去了热情吧~
对了,其实我是不怎么喜欢调用一大堆第三方软件的批处理的,感觉这已不是批处理了(如斗地主)
批处理的本质,不是应该尽量简洁,化繁为简么?
当然,如果只是调用一两个小小的第三方软件,就没关系啦~

好了,进入正题,这个是我花了3~4天,每天大概2小时的时间做出来的,只需要才1K的sleep.com(其实没什么必要,只不过会让批处理更完美)



主要是调用windows本身的msiexec.exe来解压~

有三种方式来使用:
1. 输入msi地址解压(不推荐)


2. 拖到批处理文件解压(不错吧?)


3. 打开批处理,拖到批处理的窗口+按enter解压


PS:
我有一段时期对批处理失去了热情,直到最近突然心血来潮,又写了几个批处理,其中包括这个。
其实批处理,真的真的不适合做什么斗地主的游戏,这是批处理的缺点。
就算做到,cpu占用率也很大,所以各位,请善用批处理的优点,尽量自己动脑筋想想,尽量不要靠第三方软件

最后,希望各位已快失去或已失去热情的朋友们,看到这个批处理后,赶快振作起来,重新为批处理打开新的一页!
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
2

评分人数

为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

谢谢啊,挺不错的很完美

TOP

就这一句有用,其他都是废话
  1. msiexec.exe /a "%1" /qb targetdir="%2"
复制代码

TOP

还是纯批好
  1. @echo off
  2. cd /d %~dp0
  3. title ExtractMSI v2 修订版
  4. set time=0
  5. :main
  6. mode con cols=31 lines=10
  7. if not "%~1"=="" set file=%~1&& goto special
  8. cls&set file=
  9. echo "        _______             "
  10. echo "       / MSI   |            "
  11. echo "       |::::   |   DRAG     "
  12. echo "       | ::::  |   HERE     "
  13. echo "       |  :::: |            "
  14. echo "       |_______|            "
  15. echo.
  16. echo  请拖入欲解压的MSI文件到此窗口
  17. echo  然后按“回车”(Enter)。
  18. set /p file=
  19. :checkfile
  20. if not exist "%file%" set error=file&&goto error
  21. call :get %file%
  22. if "%x%"==".msi" (goto extract) else (set error=msi)
  23. goto error
  24. :extract
  25. set select=
  26. cls
  27. mode con cols=60 lines=15
  28. echo.
  29. echo  本软件猜你要解压
  30. echo  %nx%&echo.
  31. echo  到:
  32. echo  %guess%&echo.
  33. echo  直接回车以采用以上路径&echo.
  34. set /p select=→
  35. if "%select%"=="" set target=%guess%&&goto confirm
  36. :guessagain
  37. cls&set select2=
  38. echo.&echo  我猜我猜我猜猜猜…… 你的意思是解压到……
  39. echo.&echo  1-%dp%%select%&echo.&echo  2-%d%\%select%
  40. echo.&echo  .-返回   ..-重新选择文件&echo.
  41. set /p select2=选择→
  42. if "%select2%"=="1" set target=%dp%%select%&&goto confirm
  43. if "%select2%"=="2" set target=%d%\%select%&&goto confirm
  44. if "%select2%"=="." goto extract
  45. if "%select2%"==".." goto main
  46. goto guessagain
  47. :error
  48. cls
  49. echo 别玩了,这是什么玩意儿~
  50. echo.
  51. if "%error%"=="msi" echo 只可以拖入msi文件!
  52. if "%error%"=="file" echo 文件根本不存在!
  53. pause>nul
  54. goto main
  55. :get
  56. set d=%~d1
  57. set x=%~x1
  58. set n=%~n1
  59. set nx=%~nx1
  60. set dp=%~dp1
  61. set guess=%~dpn1
  62. exit /b
  63. :confirm
  64. cls
  65. echo.&echo  最后确认&echo.&echo  解压%nx%
  66. echo.&echo  到%target%
  67. echo.&echo  ,- 确定   .- 返回&echo.
  68. set /p select=
  69. if "%select%"=="," goto process
  70. if "%select%"=="." goto extract
  71. goto confirm
  72. :process
  73. mode con cols=31 lines=10
  74. set file=%file:"=%
  75. cls
  76. echo.&echo  已调用msiexec.exe来解压,
  77. echo  如果看不见请等一会儿。&echo.
  78. msiexec.exe /a "%file%" /qb targetdir="%target%"
  79. if exist "%target%" (echo  应该可以了,按任意键去看看吧~) else (echo  你似乎取消了…… 任意键退出)
  80. pause>nul
  81. if exist "%target%" explorer "%target%"
  82. exit
  83. :special
  84. call :get "%file%"
  85. if "%x%"==".msi" (goto extract) else (set error=msi)
  86. goto error
复制代码

TOP

回复 16# raymai97


    嗯,来学批处理的

TOP

回复 15# luoxue


噢~ 那么你来这个论坛是因为对批处理有兴趣么?
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

回复 14# raymai97


    当然是我了

TOP

回复 13# luoxue


    你真是软媒的luoxue? 欢迎欢迎
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

小麦啊,我来了..............

TOP

发帖量能说明个毛,整天在水区灌个几百帖,有意思嘛?

TOP

语句因该是:
不是我不明白,这世界变化快,——边说记得边跳,呵呵。

TOP

非常批处理是个短命的娃……哎,当年也在那里潜水的。

TOP

回复 7# Batcher


    看来我记错了,我记得在来到这里之前,我有逗留过在verybat.org论坛,哪里知道没多久就挂了……
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

不是我不相信,只是这世界变化快!~
Batcher说的没错,经典的帖子经常会浮到水面的,那些经不起时间考验或者曲高和寡的作品也往往会沉入水底。然而,更多的原创作品冒出来了,你没有看见吗?
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 5# raymai97


可能你真的记错了,也许数字是对的但那是别的论坛。
最近几个月平均每天发帖量大部分时间可以在100+,最高达到200多点,发生在不久前,在你上次离开之前,能达到100就很难得了。

论坛的设置是当一个帖子被回复或者被修改之后,会自动跑到第一页第一个帖子,而不是主题帖的发布时间排序,换句话说,三四年前发布的帖子也有可能跑第一页,多年来论坛的设置一直如此,也许你离开太久根本就不记得了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表