[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理输入密码但显示星号的代码之批处理应用版

转帖:http://www.cn-dos.net/forum/viewthread.php?tid=36295
  1. @echo off&setlocal&pushd %tmp%        %Hide password by displaying *        {s11ss 2007-12-16}%
  2. <"%~f0" more +10|debug>nul&move t "t.com"
  3. echo The length of the password should not bigger than 32!&echo Press any key to continue...&pause>nul&cls
  4. t
  5. echo exit|cmd /kprompt d20:0 20$_q$_|debug>t
  6. for /f "skip=2 tokens=*" %%a in (t) do set t=%%a&call set t=%%t:~61,16%%&call set s=%%s%%%%t%%
  7. for /f "skip=2 tokens=2" %%a in (t) do set/a l=0x%%a&goto :t
  8. :t
  9. cls&echo The password is:&call echo.%%s:~1,%l%%%
  10. del t t.com&popd&echo.&echo Press any key to exit...&pause>nul&goto :eof
  11. e0100 BB 00 B8 8E C3 BF 00 00 BE 00 00 B4 00 CD 16 80
  12. e0110 FC 0E 75 0E 83 FE 00 74 F2 4E 4F 4F 26 C6 05 20
  13. e0120 EB E9 80 FC 1C 74 1C 3C 20 72 E0 26 C6 05 2A 8C
  14. e0130 C2 BB 00 00 8E C3 26 88 84 01 02 8E C2 83 C7 02
  15. e0140 46 EB C8 BB 00 00 8E C3 8B C6 26 A2 00 02 B8 00
  16. e0150 4C CD 21
  17. rcx
  18. 53
  19. n t
  20. w
  21. q
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

一看到这些16进制数就头疼。。。
想学但没有下定决心。
心绪平和,眼藏静谧。

TOP

(相对来说我更怕见到乱码。)

还有个缺憾就是光标位置不太理想。

TOP

试试这个
  1. @echo off
  2. Winput "set ''pass=$input''" "请输入密码"  /oem /pass>temp.bat
  3. if not errorlevel 1 call temp.bat
  4. del temp.bat 2>nul
  5. if defined pass (echo 密码是 %pass%) else echo 没输入任何字符
  6. pause
复制代码

TOP

真牛!这个外部工具少走了很多弯路...
可惜有帮助看看吗?
winput /?
Syntax:
winput...

好多options都不能看到...

[ 本帖最后由 qq641255849 于 2008-10-14 20:51 编辑 ]

TOP

版版,解释下最后那个矩阵和后面那几行

TOP

回复 6楼 的帖子

那个不是矩阵。如果感兴趣,建议学习一下debug或者汇编方面的基础知识。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

学习了!谢谢!但是还是有问题啊!!

TOP

回复 8楼 的帖子

有啥问题啊!!
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

救命

楼主,你这个代码的密码是什么啊?还是要自己设置的?如果我想把密码设成"168168"那要改哪段字符啊?麻烦给我这个菜鸟解释一下

TOP

怎么在输完密码后把窗口换回可以显示中文的?

TOP

re 楼上:
在批处理的开头加上这两句,就可以一直显示中文了。
  1. chcp 437 >nul
  2. graftabl 936>nul
复制代码
我也写了一个,自我感觉不错的,保存为:pass.bat
  1. @echo off
  2. goto :begin
  3. a
  4. db BE 80 00 AC 2C 02 76 21 A2 96 01 46 46 B4 03 CD 10 53 52 B9
  5. db 01 00 B4 0A AC CD 10 B4 02 5A 5B FE C2 CD 10 FE 0E 96 01 75
  6. db E8 BF 9F 01 B4 03 CD 10 88 16 97 01 B8 07 0C CD 21 3C 0D 74
  7. db 22 3C 08 74 06 3C 20 77 14 EB 10 81 FF A0 01 72 E7 4F FE 0E
  8. db 97 01 E8 22 00 EB DD B0 2A AA E8 16 00 EB D5 B8 24 24 AB B4
  9. db 09 BA 98 01 CD 21 89 F8 2D A1 01 B4 4C CD 21 FE 06 97 01 8A
  10. db 16 97 01 B9 01 00 B4 0A 80 3E 82 00 2A 75 02 B0 2A CD 10 B4
  11. db 02 CD 10 41 B8 20 0A CD 10 C3 00 00 73 65 74 20 25 31 3D 6D
  12. db 61 6B 65 20 62 79 20 62 65 6E 74 6F 6E 2E
  13. r cx
  14. a1
  15. n password.com
  16. w
  17. q
  18. :begin
  19. debug <pass.bat >nul
  20. password.com *Enter password:>passtmp.bat
  21. call passtmp.bat in
  22. echo. 你输入的密码是:%in%
  23. del passtmp.bat
  24. :: password.com *后面为要显示的提示信息,如果*号换为其它符号,则把输入内容显示出来,否则替换为*号。
  25. ::另一用法:下面用法在纯dos下,可相当于xp下的set /p in=Enter:
  26. ::提示Enter:  并把输入结果存到变量in
  27. :: password.com /Enter: >passtmp.bat
  28. :: call passtmp.bat in
  29. :: 注意:各种不可显示字符转换为*号
复制代码

[ 本帖最后由 netbenton 于 2009-7-2 21:37 编辑 ]

TOP

真的好麻烦
什么都看不懂

TOP

利用choice来隐藏输入时的密码

&&昨天群中一人再次问及批处理输入密码显示*号的问题,本来想给出本贴链接完事,后来突然想到是否能利用

choice.exe来达到此项功能,于是就有了下面的演示代码(缺点是密码只能由数字和字母组成):
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
  3. for %%a in (%str%) do set /a n+=1&set ".!n!=%%a"
  4. :lp
  5. cls&set /p=请输入八位由数字和字母组成的密码,请注意大小写:<nul
  6. if defined pwds set /p=%pwds%<nul
  7. if "%m%" equ "8" echo.&echo.&goto next
  8. choice /n /cs /c %str: =%
  9. set "pwds=%pwds%*"&set "pwd=%pwd%!.%errorlevel%!"
  10. set /a m+=1&goto lp
  11. :next
  12. if "%pwd%" equ "BatHomes" (
  13.    echo 密码正确
  14.   ) else (
  15.    echo 密码错误
  16. )
  17. pause>nul
复制代码
***共同提高***

TOP

回复 14楼 的帖子

CHOICE的功能被你榨干了 ^_^

TOP

返回列表