不知 发表于 2016-11-8 18:35 明白了,原来命令可以连写 ----------------------------------------------------------------------------- 当然了,chenall大元帅是直接用的截取命令,没写入到内存,代码就少多了 ----------------------------------------------------------------------------- 要是微软的echo也有-n参数功能就好了 |
yjqd 发表于 2016-11-8 14:25 看来确实是换行的问题。谢谢。 |
本帖最后由 不知 于 2016-11-8 19:46 编辑 yjqd 发表于 2016-11-8 14:25 从echo到%pass%是一条命令,用chenall大元帅的代码吧,简洁多了。 现在其实是这样的:在分区根目录放一文件pass存放密码。 初始密码: 123456 pass内容: $1$2ei2$Bm7jo8/I0tIbu6B8vsPIW 菜单代码: find /pass | set pwroot= cat %pwroot%/pass | set pass= password --md5 %pass% timeout 0 default 0 title boot echo -n Verify Password: if "%pass%"=="" echo no password if not "%pass%"=="" password --md5 %pass% find --set-root /bootmgr && chainloader /bootmgr find --set-root /ntldr && chainloader /ntldr title change password echo -n Verify Password: if "%pass%"=="" echo no password if not "%pass%"=="" password --md5 %pass% set /p newpw=Input New Password: if "%newpw%"=="" echo > %pwroot%/pass && exit if not "%newpw%"=="" md5crypt %newpw% | set newpw= set newpw=%newpw:~11% set /p newpwd=Input New Password Again: md5crypt %newpwd% | set newpwd= set newpwd=%newpwd:~11% if %newpw%==%newpwd% echo -n %newpwd% > %pwroot%/pass if not %newpw%==%newpwd% echo change password failed,please try again,press enter to exit && set /p pause= |
本帖最后由 yjqd 于 2016-11-8 17:05 编辑 不知 发表于 2016-11-7 12:34 好像你1楼命令没写完吧cat --locate=: | set skip= cat --locate=: (md)0x80000+1 | set skip= echo加参数-n,我测试成功了 见下图虚线框中部分,虚线框上面是没加参数-n |
md5测试.jpg (42.09 KB, 下载次数: 83)
echo加参数-n
yjqd 发表于 2016-11-8 09:15 谢谢,有可能吧,我中午去试一下。 |
不知 发表于 2016-11-7 12:34 记得windows下用md5加密不能用echo %Pass2%>MD5P.TMP,而是用>MD5P.TMP <nul Set/p=%Pass2%这种方式,前者会在MD5P.TMP产生换行,也就是MD5P.TMP的内容为%Pass2%和换行,后者在MD5P.TMP只会存在%Pass2%,不会存在换行 不知道grub4dos中的md5crypt是否和windows下用md5加密不能直接用echo类似 grub4dos的echo参数 -n不知道行不行 echo -n 123456 | md5crypt |
不点 发表于 2016-11-6 15:31 谢谢 |
看来只有使用明文密码了。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.