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

[特效代码] 求解以下批处理中实现弹出输入对话框的是那部分代码

本帖最后由 pcl_test 于 2016-8-10 14:54 编辑
  1. @echo off
  2. title bat实现弹出输入框 code by 控盘惨
  3. ::===============================================================================
  4. ::================================软件设置区=====================================
  5. :================================================================================
  6. set hideform=False
  7. ::这里设置是否隐藏bat窗口,如果是请将"set hideform=False"改成"set hideform=True"即可.(建议不要立即就改,因为待会你要看看效果呢~)
  8. set "message=请输入内容"
  9. ::对话框中要显示的内容
  10. set "title=请输入"
  11. ::对话框的标题
  12. set "note=我成功了"
  13. ::输入框中的内容注释[这里一般为空(set "note="),这是个测试,所以弄上了点字符.]
  14. :===============================================================================
  15. :===============================================================================
  16. if /i "%hideform%"=="True" (
  17. if "%1"=="h" goto begin
  18. mshta vbscript:createobject^("wscript.shell"^).run^("%~nx0 h",0^)^(window.close^)&&exit
  19. )
  20. :begin
  21. set "vbs=%Temp%\GotUserInputedDataProgram.vbs"
  22. set "data=%Temp%\UserInputedData.tmp"
  23. ::====================================
  24. ::=========开始预置对话框=============
  25. ::====================================
  26. if exist "%vbs%" del /s /q /f "%vbs%">nul
  27. ::delete file
  28. echo On Error Resume Next>>"%vbs%"
  29. echo Dim fso,wri,data,file>>"%vbs%"
  30. echo Set fso=Wscript.CreateObject^("Scripting.FileSystemObject"^)>>"%vbs%"
  31. echo file="%data%">>"%vbs%"
  32. echo if fso.FileExists^(file^) Then fso.DeleteFile^(file^)>>"%vbs%"
  33. echo Set wri=fso.CreateTextFile^(file,True^)>>"%vbs%"
  34. echo data=InputBox^("%message%","%title%","%note%"^)>>"%vbs%"
  35. echo wri.Write data>>"%vbs%"
  36. echo wri.Close>>"%vbs%"
  37. echo Set fso=Nothing>>"%vbs%"
  38. echo Set op=Nothing>>"%vbs%"
  39. echo fso.DeleteFile^(Wscript.ScriptFullName^)>>"%vbs%"
  40. echo Wscript.Quit>>"%vbs%"
  41. ::Write down visual basic script file to temp folder.Let it put user inputed data bring here.
  42. ::====================================
  43. ::====================================
  44. ::这里写你的代码
  45. ::====================================
  46. ::====================================
  47. call "%vbs%"
  48. for /f "delims=" %%i in (%data%) do set "content=%%i"
  49. if exist "%vbs%" del /s /q /f "%data%">nul
  50. if exist "%vbs%" del /s /q /f "%vbs%">nul
  51. ::开始弹出对话框
  52. ::==============================================================================
  53. ::=====呵呵~内容获取成功!用户输入在对话框的内容会被保存在变量"%content%"中~=====
  54. ::==============================================================================
  55. echo 你在输入框中输入的内容是"%content%",怎么样,厉害吧?
  56. ::==============================================================================
  57. ::==============================================================================
  58. pause>nul
复制代码

  1. 原来是
  2. 这样
复制代码

TOP

按3楼方法操作一下看看就知道了。
  1. echo On Error Resume Next>>"%vbs%"
  2. echo Dim fso,wri,data,file>>"%vbs%"
  3. echo Set fso=Wscript.CreateObject^("Scripting.FileSystemObject"^)>>"%vbs%"
  4. echo file="%data%">>"%vbs%"
  5. echo if fso.FileExists^(file^) Then fso.DeleteFile^(file^)>>"%vbs%"
  6. echo Set wri=fso.CreateTextFile^(file,True^)>>"%vbs%"
  7. echo data=InputBox^("%message%","%title%","%note%"^)>>"%vbs%"
  8. echo wri.Write data>>"%vbs%"
  9. echo wri.Close>>"%vbs%"
  10. echo Set fso=Nothing>>"%vbs%"
  11. echo Set op=Nothing>>"%vbs%"
  12. echo fso.DeleteFile^(Wscript.ScriptFullName^)>>"%vbs%"
  13. echo Wscript.Quit>>"%vbs%"
复制代码
这段就是弹窗的vbs
意思就是echo 回显后边的内容(vbs代码),然后>>"%vbs%" 输出到这个vbs文件中。
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

回复 4# 502283644


    那个不是BAT实现的,它是生成了一段VBS代码。

TOP

弹什么了???

TOP

他的bat中的输入框怎么调用

TOP

把第50行删掉,再执行一遍这个脚本。
然后打开一个CMD窗口,执行命令:
  1. notepad "%Temp%\GotUserInputedDataProgram.vbs"
复制代码

TOP

我要的是他的输入弹框哦

TOP

返回列表