中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 08:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问:如何用批处理替换文件里的字符。 查看 1,348 回复 5
楼 主 请问:如何用批处理替换文件里的字符。 发表于 2006-12-17 09:52 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
请问:如何用批处理替换文件里的字符。

就是想用批处理把menu.lst里的password那行替换成md5.txt里的字符。

文件md5.txt里只有一行:
----------
password --md5 $1$/$xt8NeSA6RgbRCGBqjoL8K.


文件menu.lst的内容如下:
----------------
color white/green yellow/green
timeout 10
default 0

fontfile (hd0,4)/grub/fonts
splashimage (hd0,4)/grub/bg.xpm.gz
#为Grub以MD5加密方式设置密码
password --md5 $1$4$b2m8/JQITYFtj7hf9w3iW/

title 安装Grub_v0.95到MBR,慎用! [先按p,输入密码]
lock
root (hd0,4)
setup (hd0)
reboot
Windows 一键还原
http://www.yjhy.com
2 发表于 2006-12-17 10:15 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  试试下面的代码:

@echo off
cd.>test.txt
for /f "tokens=1* delims=:" %%i in ('findstr /n .* menu.lst') do (
set "var=%%j"
call :replace "%%j"
)
start test.txt
goto :eof

:replace
set str=%1
set "str=%str:~1,-1%"
if /i "%str:~0,8%"=="password" (
for /f "delims=" %%i in (md5.txt) do set "str=%%i"
)
>>test.txt echo.%str%
goto :eof
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
lianjiang2004 +4 2006-12-17 21:29
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-12-17 10:25 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
试了一下可以,谢谢了,我再好好研究一下这段代码。
Windows 一键还原
http://www.yjhy.com
4 发表于 2007-02-14 09:42 ·  中国 四川 成都 电信
初级用户
积分 80
发帖 31
注册 2005-11-28 00:29
20年会员
UID 46066
状态 离线
高,真是,请问一下版主,在以下menu.lst文件中,怎样用批处理制作为提示用户输入,然后把password=123中的123替换为用户的输入字符呢呢

文件menu.lst的内容如下:
----------------
color white/green yellow/green
timeout 10
default 0

fontfile (hd0,4)/grub/fonts
splashimage (hd0,4)/grub/bg.xpm.gz
password=123
title 安装Grub_v0.95到MBR,慎用! [先按p,输入密码]
lock
root (hd0,4)
setup (hd0)
reboot
5 发表于 2007-02-14 10:55 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
echo ---------------->menu.lst
echo color white/green yellow/green>>menu.lst
echo timeout 10 >>menu.lst
echo default 0 >>menu.lst
echo.>>menu.lst
echo fontfile (hd0,4)/grub/fonts>>menu.lst
echo echo splashimage (hd0,4)/grub/bg.xpm.gz>>menu.lst
set /p pwd=请输入密码:
echo password=%pwd%>>menu.lst
echo title 安装Grub_v0.95到MBR,慎用! [先按p,输入密码]>>menu.lst
echo lock>>menu.lst
echo root (hd0,4)>>menu.lst
echo setup (hd0)>>menu.lst
echo reboot >>menu.lst
6 发表于 2007-02-14 11:21 ·  中国 四川 成都 电信
初级用户
积分 80
发帖 31
注册 2005-11-28 00:29
20年会员
UID 46066
状态 离线
万分感谢,唉,我怎么没想到了,谢谢了
论坛跳转: