中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 17:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何把a.txt文本指定内容写入b.txt文本里面 查看 925 回复 2
楼 主 如何把a.txt文本指定内容写入b.txt文本里面 发表于 2010-02-08 13:57 ·  中国 福建 福州 电信
新手上路
积分 2
发帖 2
注册 2010-01-19 07:37
16年会员
UID 158955
性别 男
状态 离线
a文本和b文本都很大
a文本很大。




a.txt文本内容如下:
usename: gntxgzdxg
password: 97fcggzd


usename: xgxdtgsdg
password: mfyfjgcdh


现在要把a文本的usename和password插入到b文本的每一###里面


b.txt文本如下:
###############################
邮箱:
FirstName: ASWATH
LastName: KHAN
SSN: 565-36-9631
Question: City of Birth
Answer: Fremont
AltEmail:
Phone: 5103785694
Address: 38730 Lexington Street
BirthDay: 1976-3-16
State: CA
City: Fremont
Zip: 94536
###############################
邮箱:
FirstName:kyicgjhsh
LastName: xgdg
SSN: 565-36-9631
Question: City of Birth
Answer: ughddry
AltEmail:
Phone: 87+43785694
Address: 38730 xington Street
BirthDay: 1972-3-16
State: CA
City: remhdth
Zip: +74536
###############################

###############################
邮箱:
FirstName: ASWATH
LastName: KHAN
SSN: 565-36-9631
Question: City of Birth
Answer: Fremont
AltEmail:
Phone: 5103785694
Address: 38730 Lexington Street
BirthDay: 1976-3-16
State: CA
City: Fremont
Zip: 94536
usename: gntxgzdxg
password: 97fcggzd
###############################

a文本的第2个usen和pass写入b文本的第2个信息里面
邮箱:
FirstName:kyicgjhsh
LastName: xgdg
SSN: 565-36-9631
Question: City of Birth
Answer: ughddry
AltEmail:
Phone: 87+43785694
Address: 38730 xington Street
BirthDay: 1972-3-16
State: CA
City: remhdth
Zip: +74536
usename: xgxdtgsdg
password: mfyfjgcdh
###############################
以此类推,第3个用户名和密码写入b文本的第3个信息里面
2 发表于 2010-02-09 18:36 ·  中国 北京 中电华通通信有限公司
初级用户
积分 49
发帖 43
注册 2007-01-20 03:28
19年会员
UID 77088
性别 男
状态 离线
利用双重循环可以实现,同时需要利用for 命令的skip定位。

@echo off
setlocal enabledelayedexpansion

echo ###############################>new.txt
set skip=1
for /f "tokens=*" %%a in (a.txt) do (
if not defined usename (
set usename=%%a
) else (
set password=%%a
call :loop
set usename=
set password=
)
)
goto :eof

:loop
for /f "skip=%skip% tokens=*" %%b in (b.txt) do (
if "%%b"=="###############################" (
echo %usename% 1>>new.txt
echo %password% 1>>new.txt
echo ###############################>>new.txt
set /a skip+=1
goto :eof
) else (
echo %%b>>new.txt
set /a skip+=1
)
)

[ Last edited by tongzj on 2010-2-9 at 18:37 ]
3 发表于 2010-02-10 12:35 ·  中国 福建 福州 电信
新手上路
积分 2
发帖 2
注册 2010-01-19 07:37
16年会员
UID 158955
性别 男
状态 离线
非常感谢2楼的大哥,你的这个批处理很好很强大,
论坛跳转: