『楼 主』:
[原创]我的超强一键软件安装管理器
经过半个多月对VBS和HTML的学习,结合自己在电脑维护中的一些经验,编写这个超强的一键软件安装管理器,主要用于绿色软件的安装,也可以用于非绿色软件的安装,还支持批量解压(需要RAR3.7以上版的支持)。
在这次个程序的制作中特别感谢ZH159兄和其他兄弟和朋友的支持。在此致以特别的感谢,程序界面参考了ZH159兄的“谁说批处理界面不漂亮”。
这个软件支持CMD界面和WINDOWS图形界面模式安装;支持繁体和简体语言的自动识别和转换;支持批量安装,支持批量绿色软件修复,支持批量解压;支持安装脚本的制作。
程序基于BAT+VBS+HTML制作,下面对主要功能简单说明一下:
安装方式我给出了4种,第一钟常规方式,不仅可以用来批量安装绿色软件(要求绿色软件中有GSETUP.BAT绿化设置,必须使用WINRAR 或7ZIP压缩),而且可以批量安装普通的EXE软件;第二种则只安装经过特殊制作的WINRAR制作的EXE压缩包,怎么个特殊法,其实就是在压缩绿色软件时在绿色软件解压缩时自动调用里面的GSETUP.BAT来实现,这样就简化了安装过程,我的绿色软件基本上都是这样的模式,比较方便,既可以手动安装,又可以使用RAR命令来解压缩安装.第三种方式表示修复安装后的绿色软件,原因很简单,如果重新安装了系统等,原来的绿色软件就无法再使用了,那么就可以简单的使用这个修复功能了,自动历篇指定目录的存在GSETUP.BAT并执行之.第四个则是直接历篇指定目录中的UINSTALL.BAT来进行绿色软件的删除.
关于脚本的制作,实际上是使用FOR命令和RAR命令获取目录和子目录中所有的EXE,RAR,7Z软件,并把其注释写入到一个文件中,制作安装脚本有两个好处,一是可以加速安装速度,免除每次安装时自动获取目录和子目录中的软件列表;二是可以把注释获取出来,用户可以重新制作注释以便作为安装说明,在IE界面中可以把这些注射读出来以便用户参考。
我把整个软件的压缩包传上来,请不要改变里面的文件名称,否则可能出现错误。把压缩包解压缩后放到需要安装软件的目录或父目录即可。
@ECHO OFF
REM RMODLE为软件运行模式为RCMD版还是图形界面版RGRAPTH,如果是RCMD模式需要设置INSTALLMODLE:M1普通安装;M2特定压缩包安装;M3绿软一键修复;M4绿软一键卸载
mode con cols=20 lines=1
SET TIMEOUT=3
SET PATH=%CD%;%CD%\TOOLS\;%PATH%
SET RMODLE=RCMD
REM CMDOW @ /DIS
FOR /F "TOKENS=1,2 DELIMS=: " %%I IN ('CHCP') DO SET LAN=%%J
IF "%JUT%"=="1" GOTO CHS
IF "%LAN%"=="936" GOTO :CHS
IF "%LAN%"=="437" GOTO :CHS
:CHT
SET JUT=1
START /WAIT CT.EXE /B /S "ONEGSETUP.BAT" /D "ONEGSETUPCHT.BAT"
START /B/WAIT ONEGSETUPCHT.BAT
IF EXIST ONEGSETUPCHT.BAT DEL ONEGSETUPCHT.BAT
EXIT
:CHS
CLS
>Temp.vbs Echo intAnswer = MsgBox("要进行WINDOWS下的图形界面安装则选择是(Y),否则只在CMD下进行安装!" , vbQuestion+vbYesNo, "小不点温馨提示!")
>>Temp.vbs Echo IF intAnswer = vbYes THEN
>>Temp.vbs Echo Wscript.Echo "RGRAPTH"
>>Temp.vbs Echo ELSEIF intAnswer = vbNo THEN
>>Temp.vbs Echo Wscript.Echo "RCMD"
>>Temp.vbs Echo END If
For /f "delims=" %%A In ('"cscript //nologo Temp.vbs"') do (GOTO :%%A)
:RCMD
CLS
mode con cols=70 lines=30
ECHO.
ECHO 一键安装管理器V1.0可以实现如下功能
ECHO 1.根据子目录中的*G.EXE安装绿软;2.也可用于非绿色软件安装
ECHO 提示:本程序一般只能用于本人制作的绿软安装;要安装非绿软请改文件名
ECHO.
ECHO ╔──────────────────────────────╗
ECHO │ │
ECHO │ 一键安装管理器V1.0 │
ECHO │ 本程序由小布点(秋语)编写制作 │
ECHO │ 欢迎使用小布点制作的绿色软件和其他程序 │
ECHO │ 本程序可以自由复制,使用和发布,版权归作者本人所有 │
ECHO │ QQ:9399100 QQ群号:29946542 E-MAIL:xiaobudian528@sina.com │
ECHO │ │
ECHO ╚──────────────────────────2007─㊣╝
ECHO.
ECHO 正在进行清理前的准备工作,请稍候.........
PING 127.0.0.1 -n %TIMEOUT% >NUL
mode con cols=20 lines=1
REM 设置安装目录IPATH,安装目录最后一个符号不能为\,否则将无法安装
:IPATH
>"%TEMP%\Temp.vbs" Echo intAnswer = inputbox("请你输入要安装的目录,输入时不要输入最后一个\符号,默认为D:\GRENN","安装目录","D:\GREEN")
>>"%TEMP%\Temp.vbs" Echo Wscript.Echo intAnswer
For /f "delims=" %%A In ('"cscript //nologo "%TEMP%\Temp.vbs""') do (SET IPATH=%%A)
IF NOT DEFINED IPATH GOTO :IPATH
REM 跳转到相应的安装模式,如果是直接设置安装模式可以使用:FOR /F %%I IN ("%INSTALLMODLE%") DO (GOTO :%%I)或IF "%INSTALLMODLE%"=="%INSTALLMODLE%" GOTO :%INSTALLMODLE%
:INSTALLMODLE
>"%TEMP%\Temp.vbs" Echo intAnswer = inputbox("请你输入安装模式,须是英文大写字母:" + vbCrlf + "M1:一键普通安装,可安装普软或绿软;" + vbCrlf + "M2:一键绿软安装,安装特定EXE压缩绿软;" + vbCrlf + "M3:一键绿软修复,可修复已经安装的绿软" + vbCrlf + "M4:一键绿软卸载,可删除已安装的绿软;" + vbCrlf + "GL:制作安装脚本,可生成安装文件列表","安装模式","M1")
>>"%TEMP%\Temp.vbs" Echo Wscript.Echo intAnswer
For /f "delims=" %%I In ('"cscript //nologo "%TEMP%\Temp.vbs""') do (SET INSTALLMODLE=%%I)
IF NOT DEFINED INSTALLMODLE GOTO :INSTALLMODLE
IF "%INSTALLMODLE%"=="M1" (SET ISF=*.EXE *.RAR *.7Z) ELSE (SET ISF=*G.EXE)
IF EXIST "InStallList.TXT" (SET ISL=InStallList.TXT) ELSE (SET ISL='DIR /S/B/O:N %ISF%')
IF EXIST "InStallList.TXT" (SET ETD=EOL=;TOKENS=1-2 DELIMS=:) ELSE (SET ETD=DELIMS=)
IF "%INSTALLMODLE%"=="%INSTALLMODLE%" GOTO :%INSTALLMODLE%
:RGRAPTH
REM 产生IE需要的背景图片和配置IE按键颜色
REM mode con cols=20 lines=1
if exist bg.gif del /f/q bg.gif>nul
echo str="47494638396101000400800000F0F0F0ECECEC2C0000000001000400000203041205003B">>debug.vbs
echo with wscript.stdout:r=vbcrlf:for i=1 to len(str) step 48:.write "e"+hex(256+(i-1)/2):for j=i to i+46 step 2:.write " "+mid(str,j,2):next:.write r:next>>debug.vbs
echo .write "rbx"+r+"0"+r+"rcx"+r+"24"+r+"n debug.tmp"+r+"w"+r+"q"+r:end with>>debug.vbs
cscript //nologo debug.vbs|debug.exe>nul&&rename debug.tmp bg.gif&&del debug.vbs
set "button=border: 1 solid #9ab8f6;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#10bfff,endColorStr=#007db2);cursor:hand;color:#ffffff;"
set "Pagebutton=border: 1 solid #9ab8f6;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#10bfff,endColorStr=#007db2)"
set "Pagedisabled=border: 1 solid #b1b1b1;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#f5f5f5,endColorStr=#b1b1b1)"
REM 最小化所有窗体
>%Temp%\Temp.vbs echo set WshShell = Wscript.CreateObject("Wscript.Shell")
>>%Temp%\Temp.vbs echo set minWA= Wscript.CreateObject("Shell.Application")
>>%Temp%\Temp.vbs echo minWA.MinimizeAll
cscript //nologo "%Temp%\Temp.vbs"
REM 使用VBS设置IE属性
>%Temp%\Temp.vbs echo '引用shdocvw.dll的internetexplorer.application对象,如果fullscreen=1则没有标题栏
>>%Temp%\Temp.vbs echo set WshShell = Wscript.CreateObject("Wscript.Shell")
>>%Temp%\Temp.vbs echo set ie=wscript.createobject("internetexplorer.application","event_")
>>%Temp%\Temp.vbs echo ie.fullscreen=1
>>%Temp%\Temp.vbs echo ie.menubar=0
>>%Temp%\Temp.vbs echo ie.addressbar=0
>>%Temp%\Temp.vbs echo ie.toolbar=0
>>%Temp%\Temp.vbs echo ie.statusbar=0
>>%Temp%\Temp.vbs echo ie.resizable=0
>>%Temp%\Temp.vbs echo ie.width=600
>>%Temp%\Temp.vbs echo ie.height=400
>>%Temp%\Temp.vbs echo ie.navigate "about:blank"
>>%Temp%\Temp.vbs echo ie.left=fix((ie.document.parentwindow.screen.availwidth-ie.width)/2)
>>%Temp%\Temp.vbs echo ie.top=fix((ie.document.parentwindow.screen.availheight-ie.height)/2)
>>%Temp%\Temp.vbs echo ie.visible=1
REM 使用VBS制作HTML
>>%Temp%\Temp.vbs echo with ie.document
>>%Temp%\Temp.vbs echo .write "<html><title>一键安装管理器</title><meta http-equiv='Content-Type' content='text/html; charset=gbk'>"
>>%Temp%\Temp.vbs echo .write "<style type='text/css' id='css'>.button {font: 15px 宋体, Verdana;height:32px;width:100px;}</style>"
>>%Temp%\Temp.vbs echo .write "<body onload=sf() background='%CD%\bg.gif' bgcolor=#e3e5da oncontextmenu='return false' scroll=yes style='font-family:宋体;font-size:15px;'>"
>>%Temp%\Temp.vbs echo .write "<table align=center style='font-family:楷体_gb2312;font-size:24px;'><td><b>一键安装管理器V1.0</b></td></table>"
>>%Temp%\Temp.vbs echo .write "<table width=550 align=center style='FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#9ab8f6,endColorStr=#5a7dde)'><td align=left style='font-size:1px;'> </td></table>"
>>%Temp%\Temp.vbs echo .write "<table width=550 align=center borderColor=#698cc2 border=1 cellSpacing=0 cellpadding=5 style='font-size:15px;border:#5a7dde 3px solid;'>"
>>%Temp%\Temp.vbs echo .write "<tr><td align=center bgcolor=#698cc2 style='FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#9ab8f6,endColorStr=#5a7dde)' colspan=4><b><font style=font-size:18px;color:#ffffff;> 欢迎使用一键安装管理器 </font><br><font style=color:#d0d0d0;><a title='中国DOS联盟论坛'>QQ:9399100</a> <a title='参考zh159兄的IE批处理界面编写'>EMAIL:xiaobudian528@yahoo.com.cn</a></font></b></td></tr>"
>>%Temp%\Temp.vbs echo .write "<tr><td align=left colspan=4><b>选择下列要安装的软件,然后点安装即可</td><tr>"
>>%Temp%\Temp.vbs echo .write "<tr align=center><td colspan=1><b>软件名称</b></td><td colspan=3><b>软件说明</b></td><tr>"
CALL :InStallList
>>%Temp%\Temp.vbs echo .write "<tr><td align=left colspan=4 bgcolor=#698cc2 style='FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#9ab8f6,endColorStr=#5a7dde);'><font style=font-size:15px;color:#ffffff;><b>安装模式:</b><input type='radio' CHECKED name='INSTALLMODLE' value='M1' title='默认为常规方式安装,不仅可以安装绿色软件,还可以安装普通软件,安装绿色软件时还可以不用预压缩'>一键常规安装<input type='radio' name='INSTALLMODLE' value='M2' title='只能安装预压缩的绿色软件,非绿色的软件将被忽略'>一键绿化安装<input type='radio' name='INSTALLMODLE' value='M3' title='对安装后的绿色软件进行修复,要求有绿色软件目录有GSETUP.bat存在'>一键绿化修复<input type='radio' name='INSTALLMODLE' value='M4' title='对安装后的绿色软件进行卸载,要求有绿色软件目录有install.bat存在'>一键绿化卸载<br><B>安装路径:</B><input type='text' ID='IPATH' name='IPATH' SIZE='70'value='D:\GREEN' title='设置时注意不要输入路径的最后一个\,如C:不要设置为C:\,又如C:\MYSOFT不要设置为C:\MYSOFT\,另外如果不设置则默认安装路径为D:\GREEN'></font></td></tr>"
>>%Temp%\Temp.vbs echo .write "<tr><td align=center width=25%% style='font-size:0px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#9ab8f6,endColorStr=#5a7dde);'> </td><td align=center width=25%% style='font-size:0px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#9ab8f6,endColorStr=#5a7dde);'></td>"
>>%Temp%\Temp.vbs echo .write "<td align=center width=25%% style='font-size:0px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#9ab8f6,endColorStr=#5a7dde);'> </td><td align=center width=25%% style='font-size:0px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#9ab8f6,endColorStr=#5a7dde);'> </td><tr></table>"
>>%Temp%\Temp.vbs echo .write "<table width=550 align=center border=0 cellSpacing=0 cellpadding=5 ><tr align=center><td align=center width=25%%><input id=btALL type=submit class=button value='全部选择' title='全部选择或取消全部选择以便进行软件安装' style='font-family:楷体_gb2312;font-size:21px;width=100;%button%'></td><td align=center width=25%%><input id=btInstall type=button class=button value='立即安装' title='立即安装选择的软件' style='font-family:楷体_gb2312;font-size:21px;width=100;%button%'></td>"
>>%Temp%\Temp.vbs echo .write "<td align=center width=25%%><input id=btGInStallList type=button class=button value='制作安装脚本' title='在当前目录生成InStallList.TXT文件以便根据该文件进行安装,这样可以随意设置软件注释,提高安装速度.' style='font-family:楷体_gb2312;font-size:21px;width=140;%button%'></td><td align=center width=25%%><input type=button class=button onClick='opener=null;window.close()' value='退出程序' title='退出安装程序' style='font-family:楷体_gb2312;font-size:21px;width=100;%button%'></td></tr></td></table>"
>>%Temp%\Temp.vbs echo .write "</body></html>"
>>%Temp%\Temp.vbs echo end with
>>%Temp%\Temp.vbs echo dim wmi
>>%Temp%\Temp.vbs echo set wnd=ie.document.parentwindow
>>%Temp%\Temp.vbs echo set id=ie.document.all
>>%Temp%\Temp.vbs echo id.btAll.onclick=getref("btALL")
>>%Temp%\Temp.vbs echo id.btInstall.onclick=getref("btInstall")
>>%Temp%\Temp.vbs echo id.btGInStallList.onclick=getref("btGInStallList")
>>%Temp%\Temp.vbs echo do while true
>>%Temp%\Temp.vbs echo wscript.sleep 500
>>%Temp%\Temp.vbs echo WshShell.AppActivate ("一键安装管理器 - Microsoft Internet Explorer")
>>%Temp%\Temp.vbs echo loop
REM 退出程序按钮
>>%Temp%\Temp.vbs echo sub event_onquit
>>%Temp%\Temp.vbs echo Wscript.Echo "GOTO END"
>>%Temp%\Temp.vbs echo wscript.quit
>>%Temp%\Temp.vbs echo end sub
REM 全部选择与否按钮
>>%Temp%\Temp.vbs echo sub btALL
>>%Temp%\Temp.vbs echo with id
>>%Temp%\Temp.vbs echo if .btALL.value="全部选择" then
>>%Temp%\Temp.vbs echo for sx=0 to .InStallList.length-1
>>%Temp%\Temp.vbs echo .InStallList(sx).checked=-1
>>%Temp%\Temp.vbs echo next
>>%Temp%\Temp.vbs echo .btALL.value="全部取消"
>>%Temp%\Temp.vbs echo elseif .btALL.value="全部取消" then
>>%Temp%\Temp.vbs echo for sx=0 to .InStallList.length-1
>>%Temp%\Temp.vbs echo .InStallList(sx).checked=0
>>%Temp%\Temp.vbs echo next
>>%Temp%\Temp.vbs echo .btALL.value="全部选择"
>>%Temp%\Temp.vbs echo end if
>>%Temp%\Temp.vbs echo end with
>>%Temp%\Temp.vbs echo end sub
REM 制作安装脚本按钮
>>%Temp%\Temp.vbs echo sub btGInStallList
IF EXIST "InStallList.TXT" >>%Temp%\Temp.vbs echo msg="已经存在InStallList.TXT,确定要覆盖该安装脚本吗?"
IF NOT EXIST "InStallList.TXT" >>%Temp%\Temp.vbs echo msg="制作安装脚本将会退出并重新启动该程序,确定吗?"
>>%Temp%\Temp.vbs echo ie.visible=0
>>%Temp%\Temp.vbs echo IF MsgBox(msg,vbQuestion+vbYesNo,"小布点提示您")=vbNo then
>>%Temp%\Temp.vbs echo ie.visible=1
>>%Temp%\Temp.vbs echo exit sub
>>%Temp%\Temp.vbs echo END IF
>>%Temp%\Temp.vbs echo Wscript.Echo "GOTO GL"
>>%Temp%\Temp.vbs echo ie.quit
>>%Temp%\Temp.vbs echo end sub
REM 检测安装路径是否合法,没有错误则返回安装路径给CMD
>>%Temp%\Temp.vbs echo sub btInstall
>>%Temp%\Temp.vbs echo ie.visible=0
>>%Temp%\Temp.vbs echo with id
>>%Temp%\Temp.vbs echo if .IPATH.value="" then
>>%Temp%\Temp.vbs echo msgbox "安装路径不能为空,请重新输入!",,"小布点提示您"
>>%Temp%\Temp.vbs echo ie.visible=1
>>%Temp%\Temp.vbs echo exit sub
>>%Temp%\Temp.vbs echo elseif right(.IPATH.value,1)="\" then
>>%Temp%\Temp.vbs echo msgbox "安装路径最后一个字符不能为\,请重新输入!",,"小布点提示您"
>>%Temp%\Temp.vbs echo ie.visible=1
>>%Temp%\Temp.vbs echo exit sub
>>%Temp%\Temp.vbs echo end if
>>%Temp%\Temp.vbs echo Wscript.Echo "SET IPATH="+.IPATH.value
REM 返回安装模式给CMD
>>%Temp%\Temp.vbs echo dim mx
>>%Temp%\Temp.vbs echo for mx=0 to 3
>>%Temp%\Temp.vbs echo if .INSTALLMODLE(mx).checked=-1 then
>>%Temp%\Temp.vbs echo Wscript.Echo "GOTO "+.INSTALLMODLE(mx).value
>>%Temp%\Temp.vbs echo if .INSTALLMODLE(mx).value="M3" OR .INSTALLMODLE(mx).value="M4" THEN wscript.quit
>>%Temp%\Temp.vbs echo end if
>>%Temp%\Temp.vbs echo next
REM 检测是否选择了需要安装的软件,如果没有则退出,这里需要注意的是判断对象是否存在时必须前面使用ON ERROR语句,并且要使用全名ie.document.all.InStallList,尽管前面已经有ID=ie.document.all,这里也不能设置用.InStallList来引用
>>%Temp%\Temp.vbs echo on error resume next
>>%Temp%\Temp.vbs echo tt=isobject(ie.document.all.InStallList)
>>%Temp%\Temp.vbs echo if tt=false then
>>%Temp%\Temp.vbs echo ie.visible=0
>>%Temp%\Temp.vbs echo msgbox "没有搜索到需要安装的软件,请把该程序放到需要安装的软件的目录或父目录",,"小布点提示您"
>>%Temp%\Temp.vbs echo ie.visible=1
>>%Temp%\Temp.vbs echo exit sub
>>%Temp%\Temp.vbs echo end if
>>%Temp%\Temp.vbs echo Set objFSO = CreateObject("Scripting.FileSystemObject")
>>%Temp%\Temp.vbs echo Set objInStallList = objFSO.OpenTextFile("%TEMP%\InStallList.ini",2,true)
>>%Temp%\Temp.vbs echo dim sx,nx
>>%Temp%\Temp.vbs echo nx=0
>>%Temp%\Temp.vbs echo for sx=0 to .InStallList.length-1
>>%Temp%\Temp.vbs echo if .InStallList(sx).checked=-1 then
>>%Temp%\Temp.vbs echo nx=nx+1
>>%Temp%\Temp.vbs echo objInStallList.WriteLine .InStallList(sx).value
>>%Temp%\Temp.vbs echo end if
>>%Temp%\Temp.vbs echo next
>>%Temp%\Temp.vbs echo ie.quit
>>%Temp%\Temp.vbs echo end with
>>%Temp%\Temp.vbs echo end sub
REM 获取VBS返回的变量
IF EXIST "%TEMP%\InStallList.ini" SET ISL=%TEMP%\InStallList.ini
IF EXIST "%TEMP%\InStallList.ini" SET ETD=EOL=;TOKENS=1-2 DELIMS=:
for /f "delims=" %%i in ('"cscript //nologo %Temp%\Temp.vbs"') do (CALL %%i)
:M1
REM 根据任意压缩包(只需要压缩包内有可执行的GSETUP.BAT文件即可,解压后才调用)安装绿色软件:
CLS
IF NOT EXIST "%IPATH%" MD "%IPATH%"
FOR /F "%ETD%" %%I IN (%ISL%) DO (
IF NOT EXIST "%IPATH%\%%~nI" (
SET IPATH=%IPATH%\%%~nI
ECHO 正在安装%%~nI到%IPATH%下,请等待......
IF /I "%%~xI"==".EXE" (START /WAIT/MIN "" "%%I") ELSE (RAR X -Y -IDQ "%%I" -AD "%IPATH%")
)
)
GOTO :M3
:M2
REM 根据预定压缩包(在EXE压缩包中直接指定压路径%IPATH%并在接压后注册运行软件,压缩包文件名不必再以*G.*为格式,DOS版则必须有该形式才可以辨别)安装绿色软件
CLS
IF NOT EXIST "%IPATH%" MD "%IPATH%"
FOR /F "%ETD%" %%I IN (%ISL%) DO (
IF NOT EXIST "%IPATH%\%%~nI" (
SET IPATH=%IPATH%\%%~nI
ECHO 正在安装%%~nI到%IPATH%下,请等待......
ECHO %IPATH%
ECHO %%I
PAUSE
START /WAIT/MIN "" "%%I")
)
GOTO :END
:M3
REM 根据用户设置的路径中的GSETUP.BAT进行一键绿化修复,所需要工具建议统一放到该程序TOOLS目录也可以单独放到软件的GTOOLS目录
CLS
IF NOT EXIST "%IPATH%" GOTO :END
FOR /F "DELIMS=" %%I IN ('DIR /S/B/A %IPATH%\GSETUP.BAT') DO (
PUSHD "%%~dpI"
ECHO 正在执行%%I,请等待......
START /WAIT/MIN "" "%%I")
)
REM POPD
GOTO :END
:M4
REM 根据用户设置的路径中的UINSTALL.BAT进行一键绿化卸载
CLS
IF NOT EXIST "%IPATH%" GOTO :END
FOR /F "DELIMS=" %%I IN ('DIR /S/B/A %IPATH%\UINSTALL.BAT') DO (
PUSHD "%%~dpI"
ECHO 正在执行%%I,请等待......
START /WAIT/MIN "" "%%I")
)
REM POPD
GOTO :END
:InStallList
REM 获取安装文件列表到IE复选框,如果存在安装文件则直接调用;反之则产生安装文件列表,同时根据是否有压缩注释来设置需要安装的文件列表1984407iloveyou
CHCP %LAN%>NUL
IF EXIST "InStallList.TXT" (
FOR /F "EOL=;TOKENS=1-2 DELIMS=:" %%I IN (InStallList.TXT) DO (
>>%Temp%\Temp.vbs echo .write "<tr><td align=left colspan=1><INPUT type='checkbox' CHECKED name='InStallList' value='%%I'><b>%%~nxI</b></td>"
>>%Temp%\Temp.vbs echo .write "<td align=left colspan=3>  %%J</td><tr>"
)
)
IF NOT EXIST "InStallList.TXT" (
FOR /F "DELIMS=" %%I IN ('DIR /S/B/O:N *.EXE *.RAR *.7Z') DO (
>>%Temp%\Temp.vbs echo .write "<tr><td align=left colspan=1><INPUT type='checkbox' CHECKED name='InStallList' value='%%~nxI'><b>%%~nxI</b></td>"
RAR LT "%%I"|FIND /I "comment:" >NUL
IF ERRORLEVEL 1 (>>%Temp%\Temp.vbs echo .write "<td align=left colspan=3>  </td><tr>")
IF ERRORLEVEL 0 (FOR /F "TOKENS=2 DELIMS=:" %%A IN ('RAR LT "%%I"^|FIND /I "comment:"') DO (>>%Temp%\Temp.vbs echo .write "<td align=left colspan=3> %%A</td><tr>")))
)
goto :eof
:GL
REM 制作安装脚本文件
CHCP %LAN%>NUL
>InStallList.TXT ECHO ;使用安装脚本可以大大提高程序速度,但使用时要注意:不要修改软件的名称,不要去掉软件名称和说明之间的英文冒号,否则将无法进行安装;说明中不能再有冒号;说明中也不要有换行等特殊符号,否则读取说明时将残缺不全.
FOR /F "DELIMS=" %%I IN ('DIR /S/B/O:N *.EXE *.RAR *.7Z') DO (
RAR LT "%%I"|FIND /I "comment:" >NUL
IF ERRORLEVEL 1 (ECHO %%~nXI:>>InStallList.TXT)
IF ERRORLEVEL 0 (FOR /F "TOKENS=2 DELIMS=:" %%A IN ('RAR LT "%%I"^|FIND /I "comment:"') DO (>>InStallList.TXT ECHO %%~nxI:%%A))
)
rem CHCP %LAN%>NUL
IF EXIST InStallList.TXT (SET msg=成功创建了安装脚本InStallList.TXT,现在要修改该文件吗?) ELSE (SET msg=未成功创建安装脚本InStallList.TXT,现在要返回安装界面吗?)
>%TEMP%\Temp.vbs Echo intAnswer = MsgBox("%msg%", vbQuestion+vbYesNo, "小不点温馨提示!")
>>%TEMP%\Temp.vbs Echo IF intAnswer = vbYes THEN
IF EXIST InStallList.TXT (>>%TEMP%\Temp.vbs Echo Wscript.Echo "START InStallList.TXT") ELSE (>>%TEMP%\Temp.vbs Echo Wscript.Echo "START %~nx0")
>>%TEMP%\Temp.vbs Echo ELSEIF intAnswer = vbNo THEN
IF EXIST InStallList.TXT (>>%TEMP%\Temp.vbs Echo Wscript.Echo "START %~nx0") ELSE (>>%TEMP%\Temp.vbs Echo Wscript.Echo "exit")
>>%TEMP%\Temp.vbs Echo END If
for /f "delims=&" %%i in ('"cscript //nologo %Temp%\Temp.vbs"') do (CALL %%i &exit)
:END
REM 退出程序并撤消最小化先前最小化的所有窗体(因为失去了环境变量,所以会最大化所有窗体)
REM >%Temp%\Temp.vbs echo set WshShell = Wscript.CreateObject("Wscript.Shell")
REM >>%Temp%\Temp.vbs echo set minWA= Wscript.CreateObject("Shell.Application")
REM >>%Temp%\Temp.vbs echo minWA.UndoMinimizeALL
REM cscript //nologo "%Temp%\Temp.vbs"
>"%TEMP%\Temp.vbs" Echo intAnswer = MsgBox("已经完成安装或维护,谢谢你的使用,再见!" , vbOkOnly, "小不点温馨提示!")
cscript //nologo "%Temp%\Temp.vbs"
IF EXIST "%TEMP%\Temp.vbs" DEL /F/Q "%TEMP%\Temp.vbs"
IF EXIST "%TEMP%\InStallList.ini" DEL /F/Q "%TEMP%\InStallList.ini"
EXIT [ Last edited by HUNRYBECKY on 2007-3-10 at 01:44 AM ]
此帖被 +46 点积分 点击查看详情 评分人:【 lxmxn 】 | 分数: +10 | 时间:2007-3-9 23:20 | 评分人:【 ccwan 】 | 分数: +9 | 时间:2007-3-9 23:51 | 评分人:【 zh159 】 | 分数: +15 | 时间:2007-3-10 00:30 | 评分人:【 redtek 】 | 分数: +10 | 时间:2007-3-10 04:28 | 评分人:【 axi 】 | 分数: +2 | 时间:2007-3-16 08:31 |
|
附件
1: onegsetup.rar (2007-3-9 11:26, 181.73 K,下载次数: 355)
附件
2: ONEGSETUP.jpg (2007-3-9 11:26, 95.32 K,下载次数: 71)
|