::使用:+字符串实现标识作用,常见goto使用到标识
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%"
::窗口输入的字符串保存在data中
::批处理中和InputBox使用时要实现换行需要按如下格式写:变量+^&vbcrlf^&+变量,^是bat转义符号,&是vbs中的连接符(此处必须使用^对&进行转义原样输入inputbox函数中)
echo data=InputBox^("%message%"^&vbcrlf^&"用户名:!user!"^&vbcrlf^&"密&码:!password!"^&vbcrlf^&"库&名:!database!","%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%"
::===============================================================================
::调用执行一个vb程序,就是上面创建的窗口
call "%vbs%"
::获取data中的内容,利用循环获取
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
::如果输入内容为空就停止