[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 批处理如何实现弹出类似vbs的inputbox输入对话框并把输入内容赋值给变量

本帖最后由 pcl_test 于 2016-11-22 23:41 编辑

bat 从msgbox中获取变量值
朋友们,请教:

在运行bat的时候,弹出一个windows文本框。通过这个文本框,输入内容,作为一个变量的值,怎么实现呢?

作为一个变量的值? 这个变量要在哪里用呢,BAT中还是VBS中?
心绪平和,眼藏静谧。

TOP

BAT里面没有msgbox
如果你是指VBS里面的msgbox
请到VBS版块去提问
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

试下这个,借助其他工具与临时文件,粗略的实现了。但成功率不高,因为getwininfo.exe效率不高,不能实施捕捉到输入信息。。。
  1. @echo off
  2. del %temp%\tmp 2>nul
  3. start mshta vbscript:Inputbox("test","test")
  4. ping 127.1 /n 2 >nul
  5. :loop
  6. if exist %temp%\tmp goto next
  7. set "s=%var%"
  8. for /f "tokens=2*" %%a in ('getwininfo /text "test"^|^|echo a^>%temp%\tmp') do (
  9.      set "var=%%b"
  10.      goto loop
  11. )
  12. :next
  13. del %temp%\tmp 2>nul
  14. echo %s%
  15. pause
复制代码
先到第三方工具版块搜索getwininfo.exe
心绪平和,眼藏静谧。

TOP

  1. ' & @cls & for /f %%a in ('cscript "%~f0" //nologo //e:vbscript') do @echo %%a & pause>nul & exit /b
  2. WSH.Echo MsgBox("Are you sure to exit?", vbYesNo, "EXIT")
复制代码

[ 本帖最后由 rat 于 2008-11-2 13:22 编辑 ]
1

评分人数

TOP

那能请大虾们把MSG用法说说吗?

TOP

十分感谢,很好。我顺便问下,怎么增强它的灵活性呢。比如选择YES以后执行的代码放在什么地方,选择NO的代码应该放在什么地方。

TOP

上面这个代码为什么选择“确定”显示6,而选择“取消”显示7呢

TOP

增强灵活性的话,最好写临时文件:
  1. @echo off
  2. >0.vbs echo WSH.Echo MsgBox("Are you sure to exit?", vbYesNo, "EXIT")
  3. for /f %%a in ('cscript 0.vbs //nologo //e:vbscript') do if %%a equ 6 (goto Y) else goto N
  4. :Y
  5. echo Yes
  6. goto End
  7. :N
  8. echo No
  9. goto End
  10. :End
  11. del 0.vbs
  12. pause>nul
复制代码
关于为什么选择“确定”显示6,而选择“取消”显示7,你可以在下面这个教程里的下载链接里找到
Microsoft Windows脚本技术.chm
然后打开它,搜索Msgbox:
http://bbs.bathome.net/thread-2382-1-1.html

TOP

我说直接点。我就是想在BAT运行的过程中能弹出一个相当于windows中的input文本框,好让我输入一些字符作为,程序下面的某个变量的值。

不要告诉用SET /P VAR =

这个我会用。

主要我的程序是隐藏运行的。

TOP

靠,rat版主,你真好,太好了,太好了。

TOP

不好意思。我是想用INPUTBOX 用键盘为一个变量输入一个值。

版主的只能选择YES OR NO

而我想要的时候,输入字符,作为变量的值

TOP

回复 12楼 的帖子

你在顶楼提问的时候,如果能够一次性把问题描述清楚,那会非常节省 rat 版主的时间,你的问题也能得到及时的解决,何乐而不为呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

你问题的标题写的是MsgBox,怎么搞的
  1. @echo off
  2. >0.vbs echo WSH.Echo InputBox("Please input?", "Get Value", "OK")
  3. for /f %%a in ('cscript 0.vbs //nologo //e:vbscript') do set "s=%%a"
  4. echo.%s%
  5. del 0.vbs
  6. pause>nul
复制代码

TOP

不是我不想,而是我水平有限,呵呵呵。

不过非常感谢各位帮助。

TOP

返回列表