![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 23:52 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]如何把VBS的变量返回给BAT[已完结]? |
| 可打印版本 3,819 / 15 |
| 第1楼 HUNRYBECKY | 发表于 2006-12-29 03:10 |
| 银牌会员 发帖 442 积分 1,179 | |
|
[求助]如何把VBS的变量返回给BAT[已完结]? 我的意图如下:
因为BAT的提示很难看,也不能用鼠标,我现在直接在BAT中写一个VBS来,然后运行VBS,把VBS的变量又传回给BAT,如何写?看下面的代码: ECHO ON ERROR RESUME NEXT>%TEMP%\MSG.VBS ECHO DIM blnMS>>%TEMP%\MSG.VBS ECHO blnMS=MSGBOX("本设置只能在安全模式下进行,要继续吗?",VbYesNo,"小不点提示")>>%TEMP%\MSG.VBS START ")>>%TEMP%\MSG.VBS 我想把这个YES 和 NO的变量传回给BAT的变量ISMS,如果ISMS=YES则继续操作,否则退出程序。 还存在一个难点:就是BAT调用VBS后还来不及等待用户进行选择就直接运行后面的代码了,能否让用户操作完VBS的内容后再继续执行BAT的内容呢? [ Last edited by HUNRYBECKY on 2006-12-29 at 09:04 AM ] |
|
| 第2楼 HUNRYBECKY | 发表于 2006-12-29 03:23 |
| 银牌会员 发帖 442 积分 1,179 | |
|
没有人回复,顶下。
|
|
| 第3楼 rochan | 发表于 2006-12-29 03:23 |
| 初级用户 发帖 14 积分 40 | |
|
对 VBS 不太懂...有待高手来回答.
不过 要是用 VBS 处理 的话. 就可以用它 判断 YES NO 就行了..为什么 还要 再传回给 BAT 呢... |
|
| 第4楼 HUNRYBECKY | 发表于 2006-12-29 03:31 |
| 银牌会员 发帖 442 积分 1,179 | |
Originally posted by rochan at 2006-12-29 03:23: 因为我对VBS不熟悉,所以一般都使用BAT来编写,但是BAT的选择提示我不想使用SET /P 或SELECT.COM来实现,而改用VBS的MSGBOX来实现,这样就美观多了。 更正一个错误,上面的代码中ECHO DIM blnMS as Boolen>>%TEMP%\MSG.VBS 改为ECHO DIM blnMS>>%TEMP%\MSG.VBS,否则会提示错误 |
|
| 第5楼 jmz573515 | 发表于 2006-12-29 03:44 |
| 银牌会员 发帖 464 积分 1,212 | |
| 第6楼 HUNRYBECKY | 发表于 2006-12-29 03:56 |
| 银牌会员 发帖 442 积分 1,179 | |
Originally posted by jmz573515 at 2006-12-29 03:44: |
|
| 第7楼 electronixtar | 发表于 2006-12-29 04:34 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
参数
|
|
| 第8楼 HUNRYBECKY | 发表于 2006-12-29 04:38 |
| 银牌会员 发帖 442 积分 1,179 | |
Originally posted by electronixtar at 2006-12-29 04:34: E兄能否说明白点,兄弟实在是外行。 |
|
| 第9楼 HUNRYBECKY | 发表于 2006-12-29 04:40 |
| 银牌会员 发帖 442 积分 1,179 | |
|
还存在一个难点:就是BAT调用VBS后还来不及等待用户进行选择就直接运行后面的代码了,能否让用户操作完VBS的内容后再继续执行BAT的内容呢?
|
|
| 第10楼 jmz573515 | 发表于 2006-12-29 04:42 |
| 银牌会员 发帖 464 积分 1,212 | |
|
这个好像是要用start /w
|
|
| 第11楼 zh159 | 发表于 2006-12-29 05:01 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
[ Last edited by zh159 on 2006-12-28 at 04:02 PM ] |
|
| 第12楼 HUNRYBECKY | 发表于 2006-12-29 05:03 |
| 银牌会员 发帖 442 积分 1,179 | |
|
谢谢zh159兄,你自己想了好久终于测试成功,等我回来正准备贴上我的代码时发现你已经抢先一步了,还是谢谢你,下面是我的代码。
@ECHO SET WS=CREATEOBJECT("WSCRIPT.SHELL")>MSG.VBS @ECHO ON ERROR RESUME NEXT>>MSG.VBS @ECHO DIM blnMS>>MSG.VBS @ECHO blnMS=MSGBOX("本设置只能在安全模式下进行,要继续吗?",VbYesNo,"小不点提示")>>MSG.VBS @ECHO Wscript.Echo blnMS>>MSG.VBS for /f "skip=2" %%i in ('"cscript MSG.VBS"') do ( set "ISMS=%%i" ) ECHO %ISMS% PAUSE |
|
| 第13楼 zh159 | 发表于 2006-12-29 05:08 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
这是三个按键的(是、否、取消)
|
|
| 第14楼 HUNRYBECKY | 发表于 2006-12-29 05:13 |
| 银牌会员 发帖 442 积分 1,179 | |
|
再次谢谢zh159兄,你的代码比我的那个好用,我是东拼西揍出来的,顺便问下,如何检测系统目前是否是安全模式?
|
|
| 第15楼 everest79 | 发表于 2006-12-29 06:07 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
ECHO ON ERROR RESUME NEXT>MSG.VBS
ECHO SET FSO=CreateObject("Scripting.FileSystemObject")>>MSG.VBS ECHO DIM blnMS>>MSG.VBS ECHO blnMS=MSGBOX("本设置只能在安全模式下进行,要继续吗?",VbYesNo,"小不点提示")>>MSG.VBS ECHO If blnMS=vbYes Then>>MSG.VBS ECHO MSGBOX "OK">>MSG.VBS ECHO Else f=fso.DeleteFile(WScript.ScriptName)>>MSG.VBS ECHO End If>>MSG.VBS start /w msg.vbs if not exist msg.vbs goto end echo abcde :end pause |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |