标题: [其他] [已解决]批处理如何从txt文本获取一行密码/字符串 [打印本页]
作者: fcxk 时间: 2015-5-6 21:43 标题: [已解决]批处理如何从txt文本获取一行密码/字符串
本帖最后由 pcl_test 于 2016-7-22 19:50 编辑
怎么才能让密码调用一个 a.txt 文本里的内容为密码:
比如 a.txt内容为 111111
窗口输入的密码直接与 a.txt 配对、而不是现在的直接设置密码
原因是方便以后密码修改、直接修改 a.txt 就可以完成- set /p password= 请输入密码:<nul
- for /f "tokens=*" %%i in ('in.com') do set password=%%i
- del in.com
- echo\
- if /i "%password%"=="111111" goto main
- echo\
- echo 对不起你输入的错误密码: "%password%"
- echo\
- echo 软件在3秒钟后自动退出.
- ping -n 3 127.0.0.1>nul
- exit
复制代码
作者: pcl_test 时间: 2015-5-6 22:03
本帖最后由 pcl_test 于 2015-5-7 00:16 编辑
- @echo off
- set /p password1=<"a.txt"
- :input
- cls
- set /p password2=请输入密码:
- ::if not defined password2 goto input
- if "%password2%" neq "%password1%" echo;对不起,你输入的密码[%password2%]错误!&ping -n 3 0 >nul&goto input
- echo;密码正确
- pause
复制代码
作者: gawk 时间: 2015-5-6 22:12
修改txt和修改bat不是都要修改吗
作者: fcxk 时间: 2015-5-6 23:36
回复 2# pcl_test
不行,直接回车就密码正确了
作者: pcl_test 时间: 2015-5-6 23:41
回复 4# fcxk
你的a.txt为空吧,测试没有问题
作者: CrLf 时间: 2015-5-7 00:40
回复 2# pcl_test
不怕万能密码 " if "" neq " 吗?
作者: fcxk 时间: 2015-5-7 10:07
回复 2# pcl_test
早上在XP下试是可以用的,win7 64下用不了。在XP可以用已经很满意了,谢谢你的解答!
技术加分24小时只能加一次,明天再给你加,呵,不会生气吧
作者: gawk 时间: 2015-5-7 10:18
回复 7# fcxk
我在Win7 x64测试2楼代码没有问题
1、你是照抄2楼代码?还是自己又改过?
2、用记事本打开a.txt,文件,另存为,看看是不是ANSI编码格式
作者: pcl_test 时间: 2015-5-7 10:56
回复 6# CrLf
嗯?没明白,求指教
作者: fcxk 时间: 2015-5-7 11:10
回复 9# pcl_test
假如密码输入时用星号显示要怎么改
作者: pcl_test 时间: 2015-5-7 13:59
回复 10# fcxk
改了后,限制也会增多
批处理输入密码但不显示(隐藏输入密码)
http://bbs.bathome.net/thread-4226-1-1.html
批处理输入密码但显示星号的代码之批处理应用版
http://bbs.bathome.net/thread-2130-1-1.html
作者: CrLf 时间: 2015-5-7 15:21
回复 9# pcl_test
举个栗子:- set "password2="==哈哈 if ""
- if "%password2%" neq "%password1%" echo;对不起,你输入的密码[%password2%]错误!&ping -n 3 0 >nul&goto input
复制代码
作者: pcl_test 时间: 2015-5-7 21:38
回复 12# CrLf
soga,那么除了屏蔽或限定字符,还有什么方法避免呢
作者: CrLf 时间: 2015-5-7 22:47
回复 13# pcl_test
简单的办法就是这样:
方法1- if "%password2:"=""%" neq "%password1:"=""%" xxxxxx
复制代码
方法2- if !password2! neq !password1! xxxxxx
复制代码
作者: fcxk 时间: 2015-5-8 09:34
参考了好几样方法,也代替不了星星啊
作者: CrLf 时间: 2015-5-8 19:28
本帖最后由 CrLf 于 2015-5-8 21:39 编辑
回复 15# fcxk
写了一个 password.exe 可解决星号输入的问题
http://www.bathome.net/viewthread.php?tid=35565- @echo off
-
- set /p=请输入密码:<nul
- for /f "delims=" %%a in ('password.exe -16 -password') do set 密码=%%a
- ::获取最长为 16 字符的密码,以星号屏蔽
-
- if defined 密码 (
- echo 您输入的密码为 %密码%
- ) else (
- echo 未设置密码
- )
-
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |