|
HUNRYBECKY
银牌会员
    
积分 1179
发帖 442
注册 2006-9-9
状态 离线
|
  『楼 主』:
[原创]我的超强一键软件安装管理器
使用 LLM 解释/回答一下
经过半个多月对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 ]
After more than half a month of learning VBS and HTML, combined with some experiences in computer maintenance, I have written this super-powered one-click software installation manager. It is mainly used for installing portable software, and can also be used for installing non-portable software. It also supports batch extraction (requiring support for RAR 3.7 or above).
I would like to express special thanks to Brother ZH159 and other brothers and friends for their support in the production of this program. Here, I extend my special thanks. The program interface refers to Brother ZH159's "Who Says Batch Processing Interfaces Can't Be Beautiful".
This software supports installation in CMD interface and WINDOWS graphical interface mode; supports automatic identification and conversion of traditional and simplified Chinese languages; supports batch installation, batch portable software repair, batch extraction; supports production of installation scripts.
The program is made based on BAT + VBS + HTML. The following briefly explains the main functions:
I have given 4 installation methods. The first conventional method can not only be used to batch install portable software (requiring GSETUP.BAT for portability setup in the portable software, and must be compressed with WINRAR or 7ZIP), but also can batch install ordinary EXE software; the second one only installs EXE compressed packages specially made with WINRAR. How is it special? In fact, it is that when compressing the portable software, the GSETUP.BAT inside is automatically called when the portable software is extracted, which simplifies the installation process. Most of my portable software are in this mode, which is relatively convenient. It can be installed manually or using the RAR command to extract and install. The third mode means repairing the installed portable software. The reason is very simple. If the system is reinstalled, the original portable software cannot be used anymore. Then this repair function can be simply used to automatically traverse the GSETUP.BAT existing in the specified directory and execute it. The fourth one is to directly traverse the UINSTALL.BAT in the specified directory to delete the portable software.
Regarding the production of the script, actually, the FOR command and RAR command are used to obtain all EXE, RAR, 7Z software in the directory and subdirectories, and write their comments to a file. There are two advantages of making the installation script. One is to speed up the installation speed and avoid automatically obtaining the software list in the directory and subdirectories each time during installation; the second is to obtain the comments, and users can re-make the comments to be used as installation instructions. In the IE interface, these comments can be read out for users' reference.
I have uploaded the compressed package of the entire software. Please do not change the file names inside, otherwise errors may occur. After decompressing the compressed package, put it in the directory or parent directory where the software needs to be installed.
@ECHO OFF
REM RMODLE is the software running mode, either RCMD version or graphical interface version RGRAPTH. If it is RCMD mode, need to set INSTALLMODLE: M1 ordinary installation; M2 specific compressed package installation; M3 portable software one-click repair; M4 portable software one-click uninstall
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("To perform graphical interface installation under WINDOWS, please choose Yes (Y), otherwise only install under CMD!" , vbQuestion+vbYesNo, "Little Dot's Warm Tip!")
>>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 One-Click Installation Manager V1.0 can realize the following functions
ECHO 1. Install portable software according to *G.EXE in subdirectories; 2. Can also be used for non-portable software installation
ECHO Tip: This program can generally only be used for the installation of portable software made by myself; to install non-portable software, please change the file name
ECHO.
ECHO ╔──────────────────────────────╗
ECHO │ │
ECHO │ One-Click Installation Manager V1.0 │
ECHO │ This program is written and produced by Xiaobudian (Qiuyu) │
ECHO │ Welcome to use the portable software and other programs made by Xiaobudian │
ECHO │ This program can be freely copied, used and published, and the copyright belongs to the author himself │
ECHO │ QQ:9399100 QQ group number:29946542 E-MAIL:xiaobudian528@sina.com │
ECHO │ │
ECHO ╚──────────────────────────2007─㊣╝
ECHO.
ECHO Preparing for cleaning, please wait.........
PING 127.0.0.1 -n %TIMEOUT% >NUL
mode con cols=20 lines=1
REM Set installation directory IPATH. The last symbol of the installation directory cannot be \, otherwise it will not be able to install
:IPATH
>"%TEMP%\Temp.vbs" Echo intAnswer = inputbox("Please enter the directory to be installed. Do not enter the last \ symbol when entering. The default is D:\GRENN","Installation Directory","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 Jump to the corresponding installation mode. If directly setting the installation mode can use: FOR /F %%I IN ("%INSTALLMODLE%") DO (GOTO :%%I) or IF "%INSTALLMODLE%"=="%INSTALLMODLE%" GOTO :%INSTALLMODLE%
:INSTALLMODLE
>"%TEMP%\Temp.vbs" Echo intAnswer = inputbox("Please enter the installation mode, which must be uppercase English letters:" + vbCrlf + "M1: One-click ordinary installation, can install ordinary software or portable software;" + vbCrlf + "M2: One-click portable software installation, install specific EXE compressed portable software;" + vbCrlf + "M3: One-click portable software repair, can repair installed portable software" + vbCrlf + "M4: One-click portable software uninstall, can delete installed portable software;" + vbCrlf + "GL: Make installation script, can generate installation file list","Installation Mode","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 Generate background image and configure IE button color needed by 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 Minimize all windows
>%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 Use VBS to set IE properties
>%Temp%\Temp.vbs echo 'Reference the internetexplorer.application object of shdocvw.dll. If fullscreen=1, there is no title bar
>>%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 Use VBS to make HTML
>>%Temp%\Temp.vbs echo with ie.document
>>%Temp%\Temp.vbs echo .write "<html><title>One-Click Installation Manager</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>One-Click Installation Manager 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;> Welcome to use One-Click Installation Manager </font><br><font style=color:#d0d0d0;><a title='China DOS Union Forum'>QQ:9399100</a> <a title='Refer to the IE batch processing interface written by zh159 brother'>EMAIL:xiaobudian528@yahoo.com.cn</a></font></b></td></tr>"
>>%Temp%\Temp.vbs echo .write "<tr><td align=left colspan=4><b>Select the software to be installed below, then click Install</td><tr>"
>>%Temp%\Temp.vbs echo .write "<tr align=center><td colspan=1><b>Software Name</b></td><td colspan=3><b>Software Description</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>Installation Mode:</b><input type='radio' CHECKED name='INSTALLMODLE' value='M1' title='Default is ordinary installation mode, can not only install portable software, but also install ordinary software. When installing portable software, no pre-compression is required'>One-Click Ordinary Installation<input type='radio' name='INSTALLMODLE' value='M2' title='Can only install pre-compressed portable software, non-portable software will be ignored'>One-Click Green Installation<input type='radio' name='INSTALLMODLE' value='M3' title='Repair installed portable software, requires GSETUP.bat to exist in the portable software directory'>One-Click Green Repair<input type='radio' name='INSTALLMODLE' value='M4' title='Uninstall installed portable software, requires install.bat to exist in the portable software directory'>One-Click Green Uninstall<br><B>Installation Path:</B><input type='text' ID='IPATH' name='IPATH' SIZE='70'value='D:\GREEN' title='Note that when setting, do not enter the last \ of the path. For example, C: should not be set as C:\, and for example, C:\MYSOFT should not be set as C:\MYSOFT\, and if not set, the default installation path is 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='Select All' title='Select all or cancel all selection for software installation' style='font-family:楷体_gb2312;font-size:21px;width=100;%button%'></td><td align=center width=25%%><input id=btInstall type=button class=button value='Install Now' title='Install selected software now' 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='Make Installation Script' title='Generate InStallList.TXT file in the current directory for installation according to this file, so that software comments can be set freely and installation speed can be improved.' 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='Exit Program' title='Exit installation program' 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 ("One-Click Installation Manager - Microsoft Internet Explorer")
>>%Temp%\Temp.vbs echo loop
REM Exit program button
>>%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 Select all or not button
>>%Temp%\Temp.vbs echo sub btALL
>>%Temp%\Temp.vbs echo with id
>>%Temp%\Temp.vbs echo if .btALL.value="Select All" 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="Cancel All"
>>%Temp%\Temp.vbs echo elseif .btALL.value="Cancel All" 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="Select All"
>>%Temp%\Temp.vbs echo end if
>>%Temp%\Temp.vbs echo end with
>>%Temp%\Temp.vbs echo end sub
REM Make installation script button
>>%Temp%\Temp.vbs echo sub btGInStallList
IF EXIST "InStallList.TXT" >>%Temp%\Temp.vbs echo msg="There is already InStallList.TXT, are you sure you want to overwrite this installation script?"
IF NOT EXIST "InStallList.TXT" >>%Temp%\Temp.vbs echo msg="Making the installation script will exit and restart this program, are you sure?"
>>%Temp%\Temp.vbs echo ie.visible=0
>>%Temp%\Temp.vbs echo IF MsgBox(msg,vbQuestion+vbYesNo,"Little Dot Reminds You")=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 Check if the installation path is legal, and if there is no error, return the installation path to 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 "Installation path cannot be empty, please re-enter!",,"Little Dot Reminds You"
>>%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 "The last character of the installation path cannot be \, please re-enter!",,"Little Dot Reminds You"
>>%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 Return installation mode to 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 Check if the software to be installed is selected. If not, exit. Here, it should be noted that when judging whether the object exists, the ON ERROR statement must be used in front, and the full name ie.document.all.InStallList must be used. Although there is ID=ie.document.all in front, here it cannot be referenced using.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 "No software to be installed is found, please put this program in the directory or parent directory where the software needs to be installed",,"Little Dot Reminds You"
>>%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 Get the variables returned by 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 Install portable software according to any compressed package (only need to have executable GSETUP.BAT file in the compressed package, and call it after extraction):
CLS
IF NOT EXIST "%IPATH%" MD "%IPATH%"
FOR /F "%ETD%" %%I IN (%ISL%) DO (
IF NOT EXIST "%IPATH%\%%~nI" (
SET IPATH=%IPATH%\%%~nI
ECHO Installing %%~nI to %IPATH% now, please wait......
IF /I "%%~xI"==".EXE" (START /WAIT/MIN "" "%%I") ELSE (RAR X -Y -IDQ "%%I" -AD "%IPATH%")
)
)
GOTO :M3
:M2
REM Install portable software according to the pre-determined compressed package (directly specify the pressure path %IPATH% in the EXE compressed package and register to run the software after extraction. The compressed package file name does not need to be in the *G.* format again. For DOS version, it must be in this form to be identified)
CLS
IF NOT EXIST "%IPATH%" MD "%IPATH%"
FOR /F "%ETD%" %%I IN (%ISL%) DO (
IF NOT EXIST "%IPATH%\%%~nI" (
SET IPATH=%IPATH%\%%~nI
ECHO Installing %%~nI to %IPATH% now, please wait......
ECHO %IPATH%
ECHO %%I
PAUSE
START /WAIT/MIN "" "%%I")
)
GOTO :END
:M3
REM One-click green repair according to GSETUP.BAT in the path set by the user. It is recommended to uniformly put the required tools in the TOOLS directory of this program or separately in the GTOOLS directory of the software
CLS
IF NOT EXIST "%IPATH%" GOTO :END
FOR /F "DELIMS=" %%I IN ('DIR /S/B/A %IPATH%\GSETUP.BAT') DO (
PUSHD "%%~dpI"
ECHO Executing %%I now, please wait......
START /WAIT/MIN "" "%%I")
)
REM POPD
GOTO :END
:M4
REM One-click green uninstall according to UINSTALL.BAT in the path set by the user
CLS
IF NOT EXIST "%IPATH%" GOTO :END
FOR /F "DELIMS=" %%I IN ('DIR /S/B/A %IPATH%\UINSTALL.BAT') DO (
PUSHD "%%~dpI"
ECHO Executing %%I now, please wait......
START /WAIT/MIN "" "%%I")
)
REM POPD
GOTO :END
:InStallList
REM Get the installation file list to the IE checkbox. If there are installation files, call directly; otherwise, generate the installation file list. At the same time, set the list of files to be installed according to whether there are compressed comments 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 Make installation script file
CHCP %LAN%>NUL
>InStallList.TXT ECHO ;Using the installation script can greatly improve the program speed, but when using, please note: do not modify the name of the software, do not remove the English colon between the software name and the description, otherwise installation will not be possible; there should be no colon in the description; there should be no special symbols such as line breaks in the description, otherwise the description will be incomplete when reading.
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=Successfully created installation script InStallList.TXT, do you want to modify this file now?) ELSE (SET msg=Failed to create installation script InStallList.TXT, do you want to return to the installation interface now?)
>%TEMP%\Temp.vbs Echo intAnswer = MsgBox("%msg%", vbQuestion+vbYesNo, "Little Dot's Warm Tip!")
>>%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 Exit program and undo the previously minimized all windows (because the environment variables are lost, so all windows will be maximized)
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("Installation or maintenance has been completed, thank you for using, goodbye!" , vbOkOnly, "Little Dot's Warm Tip!")
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 KiB,下载次数: 355)
附件
2: ONEGSETUP.jpg (2007-3-9 11:26, 95.32 KiB,下载次数: 71)
|
|
2007-3-9 09:29 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
|
2007-3-9 23:20 |
|
|
vkill
金牌会员
     
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-3-9 23:41 |
|
|
ccwan
金牌会员
     
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第 4 楼』:
使用 LLM 解释/回答一下
支持原创。
Support original works.
|

三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2007-3-9 23:52 |
|
|
zh159
金牌会员
     
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
这是我测试的一个列表,根据exe同名txt文件设置是否默认安装,并显示txt文件里的exe文件说明(每增加一个文件同时增加一个txt文件设置是否默认安装、存放软件说明)
PS:尽量不要使用Set objFSO = CreateObject("Scripting.FileSystemObject")VBS文件操作,很多杀毒软件会拦截掉
Last edited by zh159 on 2007-3-9 at 11:55 AM ]
This is a list I tested. Set whether to install by default according to the exe - named txt file, and display the exe file description in the txt file (each time a file is added, a txt file is also added to set whether to install by default and store the software description)
PS: Try not to use VBS file operations like Set objFSO = CreateObject("Scripting.FileSystemObject"), many antivirus software will intercept it
Last edited by zh159 on 2007-3-9 at 11:55 AM ]
附件
1: 安装.gif (2007-3-10 00:52, 18.23 KiB, 下载附件所需积分 1 点
,下载次数: 1)
|
|
2007-3-10 00:52 |
|
|
HUNRYBECKY
银牌会员
    
积分 1179
发帖 442
注册 2006-9-9
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
ZH什么时候也做了一个呀。早就该放出来了。
When did ZH also make one? It should have been released long ago.
|
|
2007-3-10 01:42 |
|
|
electronixtar
铂金会员
      
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
个人意见,VBS+HTML < HTA
Personal opinion, VBS + HTML < HTA
|

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2007-3-10 01:57 |
|
|
juventusryp
初级用户
 
积分 88
发帖 40
注册 2006-12-26
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
太牛比了,支持一下,等批学好了也学习下VBS
That's really awesome, I'll give it a thumbs up. When I've learned batch well, I'll also learn VBS.
|
|
2007-3-10 02:08 |
|
|
zh159
金牌会员
     
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
Originally posted by HUNRYBECKY at 2007-3-9 12:42:
ZH什么时候也做了一个呀。早就该放出来了。
你发“如何产生网页的复选框并根据用户选择返回给CMD”后开始弄的
Originally posted by electronixtar at 2007-3-9 12:57:
个人意见,VBS+HTML < HTA
想啊,只是不会用啊,特别是VBS读取、显示txt信息
Originally posted by HUNRYBECKY at 2007-3-9 12:42:
When did ZH also make one? It should have been released long ago.
You started working after you posted "How to generate checkboxes on a web page and return user selections to CMD"
Originally posted by electronixtar at 2007-3-9 12:57:
Personal opinion, VBS+HTML < HTA
I thought about it, but I don't know how to use it, especially VBS reading and displaying txt information
|
|
2007-3-10 04:01 |
|
|
nihao6227
初级用户
 
积分 26
发帖 10
注册 2006-10-28
状态 离线
|
|
2007-3-10 07:09 |
|
|
HUNRYBECKY
银牌会员
    
积分 1179
发帖 442
注册 2006-9-9
状态 离线
|
『第 11 楼』:
使用 LLM 解释/回答一下
Originally posted by zh159 at 2007-3-10 04:01:
你发“如何产生网页的复选框并根据用户选择返回给CMD”后开始弄的
想啊,只是不会用啊,特别是VBS读取、显示txt信息
呵呵,我也是看了你的那个界面后才开始学VBS和HTML的,我是边看你的程序边琢磨,还是很有意思的,都花了我半个月的时间来学习。
Originally posted by zh159 at 2007-3-10 04:01:
After you posted "How to generate checkboxes on a web page and return user selections to CMD", you started working on it.
I thought about it, but just didn't know how to use it, especially VBS reading and displaying txt information.
Hehe, I also started learning VBS and HTML after seeing your interface. I was learning while looking at your program, which was quite interesting. It took me half a month to learn.
|
|
2007-3-10 08:27 |
|
|
HUNRYBECKY
银牌会员
    
积分 1179
发帖 442
注册 2006-9-9
状态 离线
|
『第 12 楼』:
使用 LLM 解释/回答一下
Originally posted by electronixtar at 2007-3-10 01:57:
个人意见,VBS+HTML < HTA
HTA的确很好,很多安装程序,尤其是MS出的都是使用这个的,还有很多光盘都是使用这个东西搞的。不错,以后准备学习这个,还有XML也很不错的。不过现在要回家了,所以暂时不研究这些了。
Originally posted by electronixtar at 2007-3-10 01:57:
Personal opinion, VBS+HTML < HTA
HTA is really good. Many installation programs, especially those from MS, use this. Also, many CDs use this stuff. Nice. I plan to study this later. XML is also very good. But now I need to go home, so I won't study these for the time being.
|
|
2007-3-10 08:29 |
|
|
yuehong
初级用户
 
积分 64
发帖 37
注册 2007-3-14
状态 离线
|
|
2007-3-14 04:57 |
|
|
axi
中级用户
   脚本爱好者
积分 238
发帖 93
注册 2007-3-11 来自 GZ
状态 离线
|
『第 14 楼』:
使用 LLM 解释/回答一下
P、 V、 H 都要学,这是我最喜欢看的。 顶!
P、 V、 H all need to be learned, this is what I like to watch the most. Up!
|
|
2007-3-16 08:33 |
|
|
gdmzzyw
初级用户
 
积分 46
发帖 18
注册 2006-12-13
状态 离线
|
『第 15 楼』:
使用 LLM 解释/回答一下
感谢楼主!
我今天找了一天了!
转来转去还是回到这里!
谢谢!
Thanks to the楼主!
I've been looking all day today!
Going around and around still comes back here!
Thanks!
|
|
2007-3-19 03:12 |
|
|