Board logo

标题: 求助:dos输放字符如何以密码显示方式? [打印本页]

作者: gamexj     时间: 2006-4-23 21:34    标题: 求助:dos输放字符如何以密码显示方式?

比如
set/p 密码= >nul
if not %密码%==a1 goto err >nul

在输放密码时如何变成*号显示或不显示呀?
作者: 3742668     时间: 2006-4-25 13:48
vbs+bat,可以实现。在不利用其他工具的情况下,只用vbs或只用bat都无法实现。
@echo off
set tmpfile=tmp%random%.vbs
echo 请输入密码:
echo Set pw = CreateObject("Microsoft.CmdLib")  >>%tmpfile%
echo     ps = pw.GetPassword                        >>%tmpfile%
echo     wscript.stdout.write ps                >>%tmpfile%

for /f %%i in ('cscript //b %tmpfile%') do @set  psw=%%i >nul
msg * "你输入的密码为:%psw%"
del %tmpfile%
windows xp pro sp2 下测试成功,可以修改如果运行错误可修改
msg * "你输入的密码为:%psw%"为 echo 你输入的密码为:%psw% & pause
作者: arding     时间: 2006-5-11 11:35
版主3742668的回答教我开了眼界,我一直对vbscript不熟悉,这两天正在学。vbscript脚本比dos batch的功能更加强大,以后希望在这里能看到更多这方面的内容!
我试了一下,仅用vbs可以完成密码输入要求,在win xp下面,先运行
cscript //H: cscript
将默认解释器设置为命令行模式,则在win中双击内容如下的.vbs文件即可。
Set pw = CreateObject("Microsoft.CmdLib")  
    wscript.stdout.write "请输入密码:"+vbNewLine
    ps = pw.GetPassword                        
    wscript.stdout.write "您输入的密码是:"+ps+vbNewLine
    wscript.stdout.write "回车退出。"+vbNewLine
    ps = pw.GetPassword                        
输出信息改为命令行方式,以保持界面的一致,但不知如何实现输出暂停,只好再次使用输入密码命令。还望指教!

[ Last edited by arding on 2006-5-11 at 11:47 ]
作者: ebfoo     时间: 2006-6-21 22:41


  Quote:
Originally posted by arding at 2006-5-11 11:35:
版主3742668的回答教我开了眼界,我一直对vbscript不熟悉,这两天正在学。vbscript脚本比dos batch的功能更加强大,以后希望在这里能看到更多这方面的内堮..

wscript.sleep xxx
“xxx”为暂停的毫秒数