&燃气轮机&燃气轮机;登录屏幕:从批处理到VBscript,再到批处理<&书信电报;
我正在运行一个批处理脚本,用户必须在某个地方访问数据库&燃气轮机&燃气轮机;登录屏幕:从批处理到VBscript,再到批处理<&书信电报;,vbscript,login-script,batch-file,Vbscript,Login Script,Batch File,我正在运行一个批处理脚本,用户必须在某个地方访问数据库 此时,用vbscript创建的窗口将提示用户输入登录名和密码。(确定,取消按钮) 如果确认后凭证正确,则批处理将根据planA继续,否则批处理将执行其他操作,并转到planB。如果(取消),它将返回到批次和上面的菜单 @echo off :Ini echo [1] Access database echo [2] Main menu echo: set /p Quest= What do you prefer (1 / 2)?
此时,用vbscript创建的窗口将提示用户输入登录名和密码。(确定,取消按钮)
如果确认后凭证正确,则批处理将根据planA继续,否则批处理将执行其他操作,并转到planB。如果(取消),它将返回到批次和上面的菜单
@echo off
:Ini
echo [1] Access database
echo [2] Main menu
echo:
set /p Quest= What do you prefer (1 / 2)?
if not '%Quest%'=='' set Quest=%Quest:~0,1%
if '%Quest%'=='1' goto VBS
if '%Quest%'=='2' goto BATCH
echo Invalid option, please try again
cls
goto Ini
:BATCH
echo Heading for main menu ...
goto Main
:VBS
cscript login.vbs
(...)
--如何继续并制作vbs?--如何捕获用户信息、验证并返回planA或planB的批处理…
--如何用****屏蔽该密码
非常感谢您的帮助 最好完全切换到vbscript(或者因为您似乎不熟悉vbscript另一种更新、功能更强大的语言,同时又能像Ruby一样轻松使用)。从批处理开始的所有操作也可以在Vbscript中完成,您可以使用菜单提示和密码输入框,如果必须屏蔽,则使用浏览器作为UI,如Rob Vanderwoude这里的脚本 使用此技术,您可以在Internet Explorer中完成所有UI/GUI,并在Vbscript中完成逻辑
如果决定保留批处理方法,则可以使用Wscript.Quit X退出vbs脚本,其中X是脚本完成时传递给windows的错误级别,然后可以在批处理中捕获该错误级别。另一种方法是设置或更改一个环境变量来进行数据传输,最后您可以通过脚本和批处理将数据轻松写入文本文件,但批处理中的数据解析更加困难。我发现了一种有趣的替代方法,如下所述 批量嵌入的VBSSCcript
@echo off
:wscript.echo InputBox("Enter your password","VBScript-Batch")
findstr "^:" "%~sf0" | findstr /i /v ":Label" >temp.vbs
for /f "delims=" %%N in ('cscript //nologo temp.vbs') do set pass=%%N
del temp.vbs
echo You entered %pass%
:Label1
echo continue from here
If %pass%=="ok" echo Valid Password ! & goto EOF
If %pass%=="ok" echo Invalid Password !! & goto EOF
:EOF
pause
如您所见,如果我们消除“&goto EOF
”,脚本工作得很好。它将VBS输入“pass”发送到批处理,批处理从代码的其余部分返回“continue from here”
然而,它并没有发挥应有的作用。有什么帮助可以让这个真正起作用吗 另一种选择是 我在“Internet Explorer版本”的现有VBSSCcript中添加了以下代码: VBS脚本-命名为Password.VBS(请参阅Peter提供的上述链接中的完整脚本)
strPw = GetPassword( "Please, type your password:" )
WScript.Echo "Your password is: " & strPw
Sub Submit_OnClick
dim filesys, filetxt, FormContent
Set FormContent = document.getElementById("strPw")
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.OpenTextFile("C:\\temp.txt", 8, True)
filetxt.WriteLine(FormContent.value)
filetxt.Close
End Sub
批处理脚本
@echo off
cscript Password.vbs
findstr /B /E /M %strPw% temp.txt
If %ERRORLEVEL% EQU 0 echo Password matched! & goto EOF
If not %ERRORLEVEL% EQU 0 echo Invalid Password !! & goto EOF
:eof
pause
文件temp.TXT应与用户在inputbox上键入的信息一起发送到c:\。批处理将读取此输入并与设置的密码进行比较,然后继续编码
我怎样才能让它工作??temp.TXT不会生成一个如此等等的
BATCH和VBS的专家们,任何解决这些问题的帮助都是非常受欢迎的 29种观点,没有明确答案?伙计们,有人能更正密码吗?