中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-25 07:09
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]先MD5,再Base64,最后ECHO输出,怎么写方便? 查看 2,320 回复 3
楼 主 [已解决]先MD5,再Base64,最后ECHO输出,怎么写方便? 发表于 2007-01-23 04:33 ·  中国 河北 石家庄 电信
初级用户
积分 57
发帖 25
注册 2007-01-21 10:01
19年会员
UID 77223
性别 男
状态 离线
对text先MD5,再Base64,最后ECHO输出:
@echo off
color 0a
cls
set /p text="字符串:"
FOR %%b IN ("echo %text%|md5") DO (
echo %%b|base64>temp.txt
)
more temp.txt
del/a/f/s/q temp.txt
pause

我不知道怎么用set写,专门输出一个txt很不爽啊…

这是使用的外部工具:
http://zhenlove.com.cn/cndos/fileup/files/md5.zip
http://zhenlove.com.cn/cndos/fileup/files/base64.zip

[ Last edited by ec2049 on 2007-1-23 at 07:46 AM ]
2 发表于 2007-01-23 06:05 ·  中国 北京 朝阳区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
不生成临时文件的方法:


@echo off && setlocal


set /p var=字符串:
for /f %%. in ('echo %var%^|md5') do ( echo %%.|base64 )


Pause




(下面是分析过程,没用)


本来想 Echo %字符串%|md5|base64 直接就输出处理过的字符串。
结果发现这个 md5.exe 工具的作者真是有意思,非得在 md5 值的后面再加上个处理的是谁(文件名或是管道过来的源)这问题影响了连续管理操作。
不然连 for 都不要了,一行搞定。


C:\TEMP\M MD5>echo Redtek|md5
44857CF177B0D2EF4F7A909770F5263E -
(上面多了个“-”源,如果是 md5.exe <文件名, 那么md5值后面就是这个文件名。)


C:\TEMP\M MD5>echo 44857CF177B0D2EF4F7A909770F5263E|base64
NDQ4NTdDRjE3N0IwRDJFRjRGN0E5MDk3NzBGNTI2M0UNCg==
(上面的值是正确的)


C:\TEMP\M MD5>

(下面这个连续管道操作出来的值就错误的,因为 md5 处理完后非得后面加上个“源”,结果多出的这个 "-" 又被 Base64编辑了:(
(所以,连续管道操作出来的值就是错误的)

C:\TEMP\M MD5>echo Redtek|md5|base64
NDQ4NTdDRjE3N0IwRDJFRjRGN0E5MDk3NzBGNTI2M0UgIC0NCg==
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
3 发表于 2007-01-23 07:46 ·  中国 河北 石家庄 电信
初级用户
积分 57
发帖 25
注册 2007-01-21 10:01
19年会员
UID 77223
性别 男
状态 离线
谢谢~问题已解决:-)

晕...
http://www.cn-dos.net/forum/viewthread.php?tid=27000

[ Last edited by ec2049 on 2007-1-23 at 08:13 AM ]
4 发表于 2007-01-23 09:05 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
才发现base64这个东西挺好的,呵呵
论坛跳转: