中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何产生网页的复选框并根据用户选择返回给CMD
« [1] [2] »
作者:
标题: [求助]如何产生网页的复选框并根据用户选择返回给CMD 上一主题 | 下一主题
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 16 楼』:  

VBS生成的IE界面窗口里的文件链接只能采用绝对地址连接,所以不是太合适采用多html文件组成界面

你那个界面好像是每个选中的软件还得单独经过一个界面配置才安装,比较麻烦,建议绿色软件用WinRAR做成绿色安装版就OK了

我 14 楼的脚本适当加入一些代码就可以在界面中增加软件说明、默认需要安装的软件等;尽量简单为好

2007-3-7 14:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by zh159 at 2007-3-7 14:13:
VBS生成的IE界面窗口里的文件链接只能采用绝对地址连接,所以不是太合适采用多html文件组成界面

你那个界面好像是每个选中的软件还得单独经过一 ...

我的这个安装是BAT+VBS+HTML做的,因为我给出的代码是经过BAT生成的VBS代码,当然就没有了BAT的内容,VBS回把结果返回给BAT,然后使用BAT+RAR解压缩安装或直接调用EXE程序的.
安装方式我给出了4种,第一钟常规方式,不仅可以用来安装绿色软件,而且可以安装普通的EXE文件,如果是WINRAR 或7ZIP压缩的绿色软件则直接解压缩,最后历篇安装目录中的GSETUP.BAT(表示每个绿色软件的批处理程序)来完成安装;第二种则只安装经过特殊制作的WINRAR压缩包,怎么个特殊法,其实就是在压缩绿色软件时在绿色软件解压缩时自动调用里面的GSETUP.BAT来实现,这样就简化了安装过程,我的绿色软件基本上都是这样的模式,比较方便,既可以手动安装,又可以使用RAR命令来解压缩安装.第三种方式表示修复安装后的绿色软件,原因很简单,如果重新安装了系统等,原来的绿色软件就无法再使用了,那么就可以简单的使用这个修复功能了,自动历篇指定目录的存在GSETUP.BAT并执行之.第四个则是直接历篇指定目录中的UINSTALL.BAT来进行绿色软件的删除.因为我的标题是"一键安装管理器",所以所有操作都体现这个主题,没有让用户过多的去参与.

如果在程序目录存在InStallList.txt文件那么程序自动调用该文件并在IE界面上列出来让用户选择,如果不存在该文件,我提供两个选择,一是直接历篇目录中的所有EXE,RAR,7Z文件,根据压缩文件的注释自动添加软件的安装说明(需要在制作压缩文件时设置好),如果没有则保留为空表格;二是提供了一个制作安装脚本按钮,用户可以直接点生成就可以根据压缩文件的注释自动生成InStallList.txt文件,那么用户就可以修改InStallList.txt中的安装说明,同时重新加载时大大提高了速度.


做这个程序的目的是因为我是电脑管理员,不仅经常给公司安装程序(很多大程序如OFFICE等我都做成了绿色版),也常常给同事朋友等安装程序,那么写出这个程序,安装软件也就一切变的很简单了.把我绿色软件全部复制过去,用户自己就可以安装了,不用我跑来跑去的.

谢谢ZH兄的大力支持,问下,我现在只有哪个界面不是很满意,真的没有办法解决了吗?要固定住头和尾,通过13楼的方法可以实现吗?这是别人给的代码,可是我怎么搞都不行,还有没有其他办法,使用IFRAME可以吗?因为只要把IFRAME放到中间,设置适当的高度和宽度,首尾不用管,所以应该实现,但我不知道怎么做?

这次在制作这个程序的过程,由于我以前基本上没有接触过VBS和HTML,所以比较困难,在学习你的程序中我发现了很多有意思的东西,而且通过不断的模拟和测试我发现以下几个东西很有用:>>%Temp%\Temp.vbs echo Wscript.Echo .IPATH.value其实不好用,那么我可以修改为>>%Temp%\Temp.vbs echo Wscript.Echo "SET IPATH="+.IPATH.value也就是说使用Wscript.Echo把变量返回给CMD时可以直接把CMD的语法和命令附加上去,这样在使用FOR语句获取变量时不用在分情况进行了,只需要使用for /f "delims=" %%i in ('"cscript //nologo %Temp%\Temp.vbs"') do ( CALL %%i)一句话就可以轻松搞定,我发现GOTO,ECHO 等命令都可以附加给Wscript.Echo,在制作HTML页面时给复选框,选项组等名同一个名字,然后使用FOR来循环检测非常方便有效.

另外,参考你的哪个程序,我发现是直接在内存中直接生成的HTML文件,如果是这样,那么使用FRAME或IFRAME在内存地址中调用(我查过帮助,说是可以通过相对地址连接或描点进行连接的),好象挺难的呀;还有就是你的哪个产生背景的DEBUG汇编程序很有意思,不知是什么原理.

[ Last edited by HUNRYBECKY on 2007-3-7 at 10:22 PM ]

2007-3-7 21:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 18 楼』:  

那个>>%Temp%\Temp.vbs echo Wscript.Echo .IPATH.value我也是在后面此才学会用>>%Temp%\Temp.vbs echo Wscript.Echo "SET IPATH="+.IPATH.value,

列表文件直接生成一个“InStallList.htm”文件,在IFRAME中调用绝对地址就可以了(相对地址我试过找不到文件,只能用CMD生成绝对地址)


>>List.vbs echo .write "<iframe width=420 height=400 src='%cd%\InStallList.htm'></iframe>"
html中不区分路径的“/”“\”符号

2007-3-7 22:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by zh159 at 2007-3-7 22:50:
那个>>%Temp%\Temp.vbs echo Wscript.Echo .IPATH.value我也是在后面此才学会用>>%Temp%\Temp.vbs echo Wscript.Echo "SET IPATH="+.IPATH.value,

列表文件直接生 ...

谢谢,我试验下.不过今天很忙.有结果在回复你.再次谢谢ZH兄.

2007-3-7 23:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 20 楼』:  



  Quote:
Originally posted by zh159 at 2007-3-7 22:50:
那个>>%Temp%\Temp.vbs echo Wscript.Echo .IPATH.value我也是在后面此才学会用>>%Temp%\Temp.vbs echo Wscript.Echo "SET IPATH="+.IPATH.value,

列表文件直接生 ...

ZH兄,我今天晚上试验下,有问题,主要是两个方面,一是如何产生一个HTML的文件以便在IFRAME调用,我发现无法直接WRITE方法,因为这个直接写到当前IE窗体,而无法写入文件,我使用>d:\ok.htm  echo <body>,但是ECHO无法处理HTML中的><等符号,如果加引号,即>d:\ok.htm  echo "<body>"那么会在IE中产生很多"",很不好看,我使用Scripting.FileSystemObject方法虽然可以解决问题,但是装了杀毒软件的都是提示不安全的脚本,给杀掉。有没有好的方法?
二是我在通过VBS产生的IE窗体中在<ifame>调用的HTM总是空白的,不知道什么回事,我调用其他HTTP地址也是空的。但是我在其他HTML文件调用却是正常的,是不是通过VBS的 WRITE写到当前IE窗体中不能使用IFRAME?觉得好奇怪哟。

[ Last edited by HUNRYBECKY on 2007-3-8 at 10:11 AM ]

2007-3-8 09:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 21 楼』:  

试了一下,VBS好像不支持iframe框架内的选择项目属性,这样的话只能做成单个html列表文件

2007-3-8 12:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 22 楼』:  



  Quote:
Originally posted by zh159 at 2007-3-8 12:29:
试了一下,VBS好像不支持iframe框架内的选择项目属性,这样的话只能做成单个html列表文件

这样好麻烦呀.呵呵,第一个问题也比较麻烦.不知道能否解决<>特殊符号的问题。

2007-3-9 02:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 23 楼』:  

如果是单个html文件,可以先写成VBS,这样就不用考虑<>符号的问题

<>符号用^<^>方式写入

2007-3-9 05:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 24 楼』:  



  Quote:
Originally posted by zh159 at 2007-3-9 05:13:
如果是单个html文件,可以先写成VBS,这样就不用考虑<>符号的问题

<>符号用^<^>方式写入

为什么要加入^符号?是转义的吧,那有很多有。哈哈。工作量可大了。VBS好像只能直接写屏幕呀,怎么写单个文件呢?使用Scripting.FileSystemObject倒是可以,但是杀毒软件老是拦截呀,VBS有没有其他方法?谢谢ZH兄。

[ Last edited by HUNRYBECKY on 2007-3-9 at 08:09 AM ]

2007-3-9 08:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 25 楼』:  


@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /l %%i in (1,1,9) do (set menu%%i= )
:menu
echo ... %msg%
echo [%menu1%]  1.sw.exe               [%menu2%]  2.sw.exe
echo [%menu3%]  3.sw.exe               [%menu4%]  4.sw.exe
echo.
echo [i] installation   [a] check all    [q] quit
echo.
set /p xx="SYSTEM\installation command>"
set xx=%xx:~0,1%
if /i %xx%] == i] goto install
if /i %xx%] == a] (for /l %%i in (1,1,9) do set menu%%i=X)&&cls&&goto menu
if /i %xx%] == q] exit/b
echo %xx%|findstr /v [0-9]>nul&&cls&&set msg= "%xx%" input error!&&goto menu||set msg= &&if /i [!menu%xx%! == [x (set menu%xx%= &&cls&&goto menu) else (set menu%xx%=X&&cls&&goto menu)

:install
for /f "tokens=1,2 delims=menu=" %%i in ('set menu') do if /i "%j" == "x" (start /w !sw%%i!)
pause>nul
我写的菜单,嘿嘿

2007-3-9 13:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 26 楼』:  



  Quote:
Originally posted by everest79 at 2007-3-9 13:19:
[code]
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /l %%i in (1,1,9) do (set menu%%i= )
:menu
echo ... %msg%
echo [%menu1%]  1.sw.exe               [%menu2%]  2.sw.exe
echo [%menu3%]  3.sw ...

这个与我的问题有关吗?看了半天也没有什么关系呀。

2007-3-10 01:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 27 楼』:  

嘿嘿,html的方法太复杂了,我帮你想了个简单点的

2007-3-13 06:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 28 楼』:  



  Quote:
Originally posted by everest79 at 2007-3-13 06:36:
嘿嘿,html的方法太复杂了,我帮你想了个简单点的

只要认真去研究,也不是很复杂,我原来也是CMD版的,可是没有什么界面,看到ZH159兄的那个谁说批处理界面不漂亮后也就想跟着学学,所以该该HTML版,最后还是把两个版本结合起来。

2007-3-13 09:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: