标题: [特效代码] 求解以下批处理中实现弹出输入对话框的是那部分代码 [打印本页]
作者: 502283644 时间: 2014-10-20 22:06 标题: 求解以下批处理中实现弹出输入对话框的是那部分代码
本帖最后由 pcl_test 于 2016-8-10 14:54 编辑
- @echo off
- title bat实现弹出输入框 code by 控盘惨
- ::===============================================================================
- ::================================软件设置区=====================================
- :================================================================================
- set hideform=False
- ::这里设置是否隐藏bat窗口,如果是请将"set hideform=False"改成"set hideform=True"即可.(建议不要立即就改,因为待会你要看看效果呢~)
- set "message=请输入内容"
- ::对话框中要显示的内容
- set "title=请输入"
- ::对话框的标题
- set "note=我成功了"
- ::输入框中的内容注释[这里一般为空(set "note="),这是个测试,所以弄上了点字符.]
- :===============================================================================
- :===============================================================================
- if /i "%hideform%"=="True" (
- if "%1"=="h" goto begin
- mshta vbscript:createobject^("wscript.shell"^).run^("%~nx0 h",0^)^(window.close^)&&exit
- )
- :begin
- set "vbs=%Temp%\GotUserInputedDataProgram.vbs"
- set "data=%Temp%\UserInputedData.tmp"
- ::====================================
- ::=========开始预置对话框=============
- ::====================================
- if exist "%vbs%" del /s /q /f "%vbs%">nul
- ::delete file
- echo On Error Resume Next>>"%vbs%"
- echo Dim fso,wri,data,file>>"%vbs%"
- echo Set fso=Wscript.CreateObject^("Scripting.FileSystemObject"^)>>"%vbs%"
- echo file="%data%">>"%vbs%"
- echo if fso.FileExists^(file^) Then fso.DeleteFile^(file^)>>"%vbs%"
- echo Set wri=fso.CreateTextFile^(file,True^)>>"%vbs%"
- echo data=InputBox^("%message%","%title%","%note%"^)>>"%vbs%"
- echo wri.Write data>>"%vbs%"
- echo wri.Close>>"%vbs%"
- echo Set fso=Nothing>>"%vbs%"
- echo Set op=Nothing>>"%vbs%"
- echo fso.DeleteFile^(Wscript.ScriptFullName^)>>"%vbs%"
- echo Wscript.Quit>>"%vbs%"
- ::Write down visual basic script file to temp folder.Let it put user inputed data bring here.
- ::====================================
- ::====================================
- ::这里写你的代码
- ::====================================
- ::====================================
- call "%vbs%"
- for /f "delims=" %%i in (%data%) do set "content=%%i"
- if exist "%vbs%" del /s /q /f "%data%">nul
- if exist "%vbs%" del /s /q /f "%vbs%">nul
- ::开始弹出对话框
- ::==============================================================================
- ::=====呵呵~内容获取成功!用户输入在对话框的内容会被保存在变量"%content%"中~=====
- ::==============================================================================
- echo 你在输入框中输入的内容是"%content%",怎么样,厉害吧?
- ::==============================================================================
- ::==============================================================================
- pause>nul
复制代码
作者: 502283644 时间: 2014-10-20 22:07
我要的是他的输入弹框哦
作者: DAIC 时间: 2014-10-20 22:18
把第50行删掉,再执行一遍这个脚本。
然后打开一个CMD窗口,执行命令:- notepad "%Temp%\GotUserInputedDataProgram.vbs"
复制代码
作者: 502283644 时间: 2014-10-21 21:09
他的bat中的输入框怎么调用
作者: ads350668398 时间: 2014-10-21 22:09
弹什么了???
作者: DAIC 时间: 2014-10-22 08:28
回复 4# 502283644
那个不是BAT实现的,它是生成了一段VBS代码。
作者: Linuxer 时间: 2014-10-22 09:19
按3楼方法操作一下看看就知道了。- echo On Error Resume Next>>"%vbs%"
- echo Dim fso,wri,data,file>>"%vbs%"
- echo Set fso=Wscript.CreateObject^("Scripting.FileSystemObject"^)>>"%vbs%"
- echo file="%data%">>"%vbs%"
- echo if fso.FileExists^(file^) Then fso.DeleteFile^(file^)>>"%vbs%"
- echo Set wri=fso.CreateTextFile^(file,True^)>>"%vbs%"
- echo data=InputBox^("%message%","%title%","%note%"^)>>"%vbs%"
- echo wri.Write data>>"%vbs%"
- echo wri.Close>>"%vbs%"
- echo Set fso=Nothing>>"%vbs%"
- echo Set op=Nothing>>"%vbs%"
- echo fso.DeleteFile^(Wscript.ScriptFullName^)>>"%vbs%"
- echo Wscript.Quit>>"%vbs%"
复制代码
这段就是弹窗的vbs
意思就是echo 回显后边的内容(vbs代码),然后>>"%vbs%" 输出到这个vbs文件中。
作者: 502283644 时间: 2014-10-22 21:53
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |