Board logo

标题: [文件管理] ExtractMSI v2 批处理解压msi [打印本页]

作者: raymai97    时间: 2011-7-29 21:47     标题: ExtractMSI v2 批处理解压msi

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

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

[attach]4190[/attach]

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

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


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


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


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

最后,希望各位已快失去或已失去热情的朋友们,看到这个批处理后,赶快振作起来,重新为批处理打开新的一页!
作者: Batcher    时间: 2011-7-29 22:48

你觉得“不像以前热闹”主要体现在哪些方面?
作者: raymai97    时间: 2011-7-30 00:20

回复 2# Batcher


    难道你不觉得么?除了“代码咨询&讨论”,新帖子好像很少啊~
作者: Batcher    时间: 2011-7-30 00:31

回复 3# raymai97


你觉得,以前平均每天多少?现在呢?
作者: raymai97    时间: 2011-7-30 10:35

回复 4# Batcher


    额,如果我没有记错的话,以前和现在的比例,应该是3:1吧~
作者: raymai97    时间: 2011-7-30 10:44

回复 4# Batcher


    去原创代码看看~ 我离开前,最后一个“批处理模拟windows”竟然还在第2页……
    对了,你还记得“防止批处理泄露密码”的那个帖子么?里面好像讲了什么“//”的,现在不知去哪里了~
作者: Batcher    时间: 2011-7-30 11:03

回复 5# raymai97


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

论坛的设置是当一个帖子被回复或者被修改之后,会自动跑到第一页第一个帖子,而不是主题帖的发布时间排序,换句话说,三四年前发布的帖子也有可能跑第一页,多年来论坛的设置一直如此,也许你离开太久根本就不记得了。
作者: cjiabing    时间: 2011-7-30 11:44

不是我不相信,只是这世界变化快!~
Batcher说的没错,经典的帖子经常会浮到水面的,那些经不起时间考验或者曲高和寡的作品也往往会沉入水底。然而,更多的原创作品冒出来了,你没有看见吗?
作者: raymai97    时间: 2011-7-30 12:40

回复 7# Batcher


    看来我记错了,我记得在来到这里之前,我有逗留过在verybat.org论坛,哪里知道没多久就挂了……
作者: BillGates    时间: 2011-7-30 12:53

非常批处理是个短命的娃……哎,当年也在那里潜水的。
作者: Hello123World    时间: 2011-7-31 13:14

语句因该是:
不是我不明白,这世界变化快,——边说记得边跳,呵呵。
作者: CUer    时间: 2011-7-31 13:56

发帖量能说明个毛,整天在水区灌个几百帖,有意思嘛?
作者: luoxue    时间: 2011-8-16 13:17

小麦啊,我来了..............
作者: raymai97    时间: 2011-8-16 19:51

回复 13# luoxue


    你真是软媒的luoxue? 欢迎欢迎
作者: luoxue    时间: 2011-8-16 21:33

回复 14# raymai97


    当然是我了
作者: raymai97    时间: 2011-8-16 21:45

回复 15# luoxue


噢~ 那么你来这个论坛是因为对批处理有兴趣么?
作者: luoxue    时间: 2011-8-17 07:49

回复 16# raymai97


    嗯,来学批处理的
作者: 111    时间: 2013-3-10 19:10

还是纯批好
  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
复制代码

作者: 111    时间: 2013-5-3 20:27

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

作者: sxsxiao    时间: 2013-5-4 12:20

谢谢啊,挺不错的很完美




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