中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 01:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » {已结}把VBS密码 用到BAT中 查看 1,819 回复 14
楼 主 {已结}把VBS密码 用到BAT中 发表于 2006-11-17 17:57 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
密码程序
@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% & pause
del %tmpfile% (备注:这段是以前 3742668 兄的代码)

===============================================

要运行的语句

set num=0
:loop
set /p pass=请输入密码:
if "%pass%"=="adminzhoulichainliq" goto game
set /a num=%num% + 1
if %num%==3 goto error
goto loop
:error
%windir%\system32\rundll32.exe user32.dll,LockWorkStation
goto end

:game
set /p num= 请输入名称:
if /I "%num%"=="n" exit
start rd /s /q D:\netgame\%num%
goto end



试啦好久还是不成功,不知道怎么样把下面这一段套到上面去,
让它在输入密码的时候,以*号方式显示!

[ Last edited by chainliq on 2006-11-24 at 08:29 PM ]
2 发表于 2006-11-18 00:09 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
目前我所知道的答案时:用 choice

Microsoft.Cmdlib 那个貌似在 XP SP2 里无效。微软官站也是用的其他的ActiveX做的

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
3 发表于 2006-11-19 16:45 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
真的没有其它办法啦吗?
4 发表于 2006-11-20 13:54 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
Microsoft.CmdLib在sp2中测试有效,我的系统是联想的oem版本拷贝而来,从未额外装过其他控件。
楼主不成功是在哪一步不成功?另外要想*号显示密码目前看来比较有挑战性。除非使用internetexplorer.application(需要弹出窗口)以及asc编码com。
5 发表于 2006-11-22 22:06 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
我们都知道批处理可以调用JS,那我们能不能也利用JS的来加密,然后再用批处理来调用呢!这还得麻烦论坛上的JS高手OY`````````
6 发表于 2006-11-23 07:26 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
[quote]我们都知道批处理可以调用JS,那我们能不能也利用JS的来加密,然后再用批处理来调用呢!这还得麻烦论坛上的JS高手OY````````` [quote]
效果不是很好。

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
7 发表于 2006-11-23 12:59 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
利用IE的密码输入框
@echo off
title 密码

:loop
>%Temp%\Temp.vbs echo set WshShell = Wscript.CreateObject("Wscript.Shell")
>>%Temp%\Temp.vbs echo set ie=wscript.createobject("internetexplorer.application","event_")
>>%Temp%\Temp.vbs echo ie.menubar=0
>>%Temp%\Temp.vbs echo ie.addressbar=0
>>%Temp%\Temp.vbs echo ie.toolbar=0
>>%Temp%\Temp.vbs echo ie.statusbar=0
>>%Temp%\Temp.vbs echo ie.resizable=0
>>%Temp%\Temp.vbs echo ie.width=270
>>%Temp%\Temp.vbs echo ie.height=200
>>%Temp%\Temp.vbs echo ie.navigate "about:blank"
>>%Temp%\Temp.vbs echo ie.left=fix((ie.document.parentwindow.screen.availwidth-ie.width)/2)
>>%Temp%\Temp.vbs echo ie.top=fix((ie.document.parentwindow.screen.availheight-ie.height)/2)
>>%Temp%\Temp.vbs echo ie.visible=1

>>%Temp%\Temp.vbs echo with ie.document
>>%Temp%\Temp.vbs echo .write "<html><title>输入密码</title><body bgcolor=#e3e5da scroll=no style='font-family:宋体;font-size:15px;'>"
>>%Temp%\Temp.vbs echo .write "<h3 align=center>输入密码</h3>"
>>%Temp%\Temp.vbs echo .write "<p align=center>"
>>%Temp%\Temp.vbs echo .write " 请输入密码: <input id=pass type=password size=10><br><br>"
>>%Temp%\Temp.vbs echo .write "<input id=confirm type=button value=确定> <input id=cancel type=button value=取消>"
>>%Temp%\Temp.vbs echo .write "</body></html>"
>>%Temp%\Temp.vbs echo end with

>>%Temp%\Temp.vbs echo dim wmi
>>%Temp%\Temp.vbs echo set wnd=ie.document.parentwindow
>>%Temp%\Temp.vbs echo set id=ie.document.all
>>%Temp%\Temp.vbs echo id.confirm.onclick=getref("confirm")
>>%Temp%\Temp.vbs echo id.cancel.onclick=getref("cancel")

>>%Temp%\Temp.vbs echo do while true
>>%Temp%\Temp.vbs echo wscript.sleep 500
>>%Temp%\Temp.vbs echo WshShell.AppActivate ("输入密码 - Microsoft Internet Explorer")
>>%Temp%\Temp.vbs echo loop

>>%Temp%\Temp.vbs echo sub event_onquit
>>%Temp%\Temp.vbs echo wscript.quit
>>%Temp%\Temp.vbs echo end sub

>>%Temp%\Temp.vbs echo sub cancel
>>%Temp%\Temp.vbs echo ie.quit
>>%Temp%\Temp.vbs echo end sub

>>%Temp%\Temp.vbs echo sub confirm
>>%Temp%\Temp.vbs echo ie.visible=0
>>%Temp%\Temp.vbs echo ie.quit
>>%Temp%\Temp.vbs echo with id
>>%Temp%\Temp.vbs echo Wscript.Echo .pass.value
>>%Temp%\Temp.vbs echo exit sub
>>%Temp%\Temp.vbs echo end with
>>%Temp%\Temp.vbs echo end sub

set password=没有输入密码
for /f "delims=" %%i in ('"cscript //nologo %Temp%\Temp.vbs"') do (
set "pass=%%i"
)
cls
echo.
echo. 密码: %pass%
echo.
echo 请稍等...
goto loop
exit



用上面的替换“set /p pass=请输入密码:”即可(适当修改)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
chainliq +2 2006-11-23 21:38
8 发表于 2006-11-23 21:38 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
呵呵 ,高手呀,不错不错
可是你这个在那儿设密码呢,呵呵,看不懂挖,{(用上面的替换“set /p pass=请输入密码:”即可(适当修改)}
不行呀,替找啦,输入密码老是不能运行这一句

:game
set /p num= 请输入名称:
if /I "%num%"=="n" exit
start rd /s /q D:\netgame\%num%
goto end


希望的是输入正确密码后能运行这一句呀,
还有就是,你这个点“取消”按钮后还是不能退出哦!

麻烦兄弟再指点一下米精哦~

[ Last edited by chainliq on 2006-11-23 at 09:57 PM ]
9 发表于 2006-11-23 22:12 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
呵呵,行啦,朋友谢谢你哦!~~!
10 发表于 2006-11-23 22:14 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
关注中,有学习的价值
11 发表于 2006-11-23 22:20 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
@echo off
set num=0
:loop
>%Temp%\Temp.vbs echo set WshShell = Wscript.CreateObject("Wscript.Shell")
>>%Temp%\Temp.vbs echo set ie=wscript.createobject("internetexplorer.application","event_")
>>%Temp%\Temp.vbs echo ie.menubar=0
>>%Temp%\Temp.vbs echo ie.addressbar=0
>>%Temp%\Temp.vbs echo ie.toolbar=0
>>%Temp%\Temp.vbs echo ie.statusbar=0
>>%Temp%\Temp.vbs echo ie.resizable=0
>>%Temp%\Temp.vbs echo ie.width=270
>>%Temp%\Temp.vbs echo ie.height=200
>>%Temp%\Temp.vbs echo ie.navigate "about:blank"
>>%Temp%\Temp.vbs echo ie.left=fix((ie.document.parentwindow.screen.availwidth-ie.width)/2)
>>%Temp%\Temp.vbs echo ie.top=fix((ie.document.parentwindow.screen.availheight-ie.height)/2)
>>%Temp%\Temp.vbs echo ie.visible=1

>>%Temp%\Temp.vbs echo with ie.document
>>%Temp%\Temp.vbs echo .write "<html><title>输入密码</title><body bgcolor=#e3e5da scroll=no style='font-family:宋体;font-size:15px;'>"
>>%Temp%\Temp.vbs echo .write "<h3 align=center>输入密码</h3>"
>>%Temp%\Temp.vbs echo .write "<p align=center>"
>>%Temp%\Temp.vbs echo .write " 请输入密码: <input id=pass type=password size=10><br><br>"
>>%Temp%\Temp.vbs echo .write "<input id=confirm type=button value=确定> <input id=cancel type=button value=取消>"
>>%Temp%\Temp.vbs echo .write "</body></html>"
>>%Temp%\Temp.vbs echo end with

>>%Temp%\Temp.vbs echo dim wmi
>>%Temp%\Temp.vbs echo set wnd=ie.document.parentwindow
>>%Temp%\Temp.vbs echo set id=ie.document.all
>>%Temp%\Temp.vbs echo id.confirm.onclick=getref("confirm")
>>%Temp%\Temp.vbs echo id.cancel.onclick=getref("cancel")

>>%Temp%\Temp.vbs echo do while true
>>%Temp%\Temp.vbs echo wscript.sleep 500
>>%Temp%\Temp.vbs echo WshShell.AppActivate ("输入密码 - Microsoft Internet Explorer")
>>%Temp%\Temp.vbs echo loop

>>%Temp%\Temp.vbs echo sub event_onquit
>>%Temp%\Temp.vbs echo wscript.quit
>>%Temp%\Temp.vbs echo end sub

>>%Temp%\Temp.vbs echo sub cancel
>>%Temp%\Temp.vbs echo ie.quit
>>%Temp%\Temp.vbs echo end sub

>>%Temp%\Temp.vbs echo sub confirm
>>%Temp%\Temp.vbs echo ie.visible=0
>>%Temp%\Temp.vbs echo ie.quit
>>%Temp%\Temp.vbs echo with id
>>%Temp%\Temp.vbs echo Wscript.Echo .pass.value
>>%Temp%\Temp.vbs echo exit sub
>>%Temp%\Temp.vbs echo end with
>>%Temp%\Temp.vbs echo end sub

set password=没有输入密码
for /f "delims=" %%i in ('"cscript //nologo %Temp%\Temp.vbs"') do (
set "pass=%%i"
)
cls
echo.
echo.
echo.
echo 请稍等...

if "%pass%"=="设密码的地方" goto game
set /a num=%num% + 1
if %num%==3 goto not
goto loop
goto end

:game
set /p num= 请输入名称:
if /I "%num%"=="n" exit
start rd /s /q D:\netgame\%num%
goto end
:not
pauss


呵呵,好啦,现在把改好的贴子大家可以啦分亨 以后再不用愁这设密码这事儿啦,,非常感谢 zxcv兄的帮忙!
12 发表于 2006-11-23 22:56 ·  中国 广东 广州 天河区 电信
中级用户
★★
积分 259
发帖 112
注册 2006-09-18 04:55
19年会员
UID 62928
性别 男
状态 离线
呵呵,终于搞明白了!!
13 发表于 2007-02-18 20:35 ·  中国 广东 深圳 福田区 电信
初级用户
积分 27
发帖 11
注册 2006-03-16 07:21
20年会员
UID 52148
状态 离线
嘻嘻
14 好东西 发表于 2007-02-19 05:32 ·  中国 黑龙江 牡丹江 电信
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
正在消化……
15 发表于 2007-10-10 14:12 ·  中国 山东 青岛 联通
初级用户
★★
积分 146
发帖 86
注册 2007-10-01 11:27
18年会员
UID 98691
性别 男
状态 离线
好极了
论坛跳转: