[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

回复 14# batman
可惜不能回删,输错只能重来,想象一下,如果你的朋友历经千辛万苦,来到了输密码这一关,输错了,他就崩溃了
https://pc.woozooo.com/mydisk.php

TOP

回复 4# fastslz


管理员运行这样了,直接跳过,正常运行没问题
    D:\ProgramData>echo 请输入密码,3次机会.当前第 1次
请输入密码,3次机会.当前第 1次

D:\ProgramData>Winput "set ''pass=$input''" "请输入密码"  /oem /pass 1>temp.bat
'Winput' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\ProgramData>if not errorlevel 1 call temp.bat

D:\ProgramData>del temp.bat  2>nul

D:\ProgramData>if "" == "" goto TX1

D:\ProgramData>copy \curl.exe D:\ProgramData\curl.exe
系统找不到指定的文件。

TOP

到头来还是用汇编....
不过14l的choice用法很新奇很好\^O^/

TOP

本帖最后由 yu2n 于 2014-1-3 00:49 编辑

windows 7 x64 下使用 BAT 调用 powershell 实现输入密码回显星号功能
http://stackoverflow.com/questio ... -text-in-a-bat-file
  1. @echo off
  2. set /p p= User Login - <nul
  3. call :_getPwd pwd
  4. echo Password is %pwd%
  5. pause
  6. goto :eof
  7. :_getPwd
  8.     REM powershell
  9.     (powershell /? >nul 2>nul) && powershell -Command $pword = read-host "Enter password" -AsSecureString ; ^
  10.         $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; ^
  11.             [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) > .tmp.txt
  12.             
  13.     REM VBS - ScriptPW.Password [C]2010 Spring
  14.     (powershell /? >nul 2>nul) || (
  15.         echo WScript.StdOut.Write CreateObject^("ScriptPW.Password"^).GetPassword > Spring
  16.         cscript -nologo -e:vbs Spring > .tmp.txt
  17.         del Spring
  18.     )
  19.     set /p %1=<.tmp.txt
  20.     del .tmp.txt
  21.     goto :eof
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 12# netbenton

后半部分的十六进制:
    s,e,t, ,%,1,=,m,a,k,e, ,b,y, ,b,e,n,t,o,n,.
中的benton.是作者吗?

TOP

choice 命令貌似 在XP上没有

TOP

回复 12# netbenton


    你好 我试了你的代码不行呀 只有个dos窗口没有任何提示文字 而且输入字符既不显示明文也不显示星号

TOP

来个自己做的
可以用choice.exe无限输入密码
还可以改密码
默认111503

TOP

回复 14楼 的帖子

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

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

真的好麻烦
什么都看不懂

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

救命

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

TOP

返回列表