Board logo

标题: [其他] [已解决]批处理如何从txt文本获取一行密码/字符串 [打印本页]

作者: fcxk    时间: 2015-5-6 21:43     标题: [已解决]批处理如何从txt文本获取一行密码/字符串

本帖最后由 pcl_test 于 2016-7-22 19:50 编辑

怎么才能让密码调用一个 a.txt 文本里的内容为密码:
比如 a.txt内容为 111111
窗口输入的密码直接与 a.txt 配对、而不是现在的直接设置密码
原因是方便以后密码修改、直接修改 a.txt 就可以完成
  1. set  /p password=   请输入密码:<nul
  2. for /f "tokens=*" %%i in ('in.com') do set password=%%i
  3. del in.com
  4. echo\
  5. if /i "%password%"=="111111" goto main
  6. echo\
  7. echo    对不起你输入的错误密码:   "%password%"
  8. echo\
  9. echo    软件在3秒钟后自动退出.
  10. ping -n 3 127.0.0.1>nul
  11. exit
复制代码

作者: pcl_test    时间: 2015-5-6 22:03

本帖最后由 pcl_test 于 2015-5-7 00:16 编辑
  1. @echo off
  2. set /p password1=<"a.txt"
  3. :input
  4. cls
  5. set /p password2=请输入密码:
  6. ::if not defined password2 goto input
  7. if "%password2%" neq "%password1%" echo;对不起,你输入的密码[%password2%]错误!&ping -n 3 0 >nul&goto input
  8. echo;密码正确
  9. 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


    举个栗子:
  1. set "password2="==哈哈 if ""
  2. 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
  1. if "%password2:"=""%" neq "%password1:"=""%" xxxxxx
复制代码
方法2
  1. 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
  1. @echo off
  2. set /p=请输入密码:<nul
  3. for /f "delims=" %%a in ('password.exe -16 -password') do set 密码=%%a
  4. ::获取最长为 16 字符的密码,以星号屏蔽
  5. if defined 密码 (
  6.    echo 您输入的密码为 %密码%
  7. ) else (
  8.    echo 未设置密码
  9. )
  10. pause
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2