中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 06:50
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教高手一个问题。大家帮帮忙啊。 查看 1,168 回复 5
楼 主 请教高手一个问题。大家帮帮忙啊。 发表于 2006-09-14 09:14 ·  中国 北京 朝阳区 联通
新手上路
积分 11
发帖 1
注册 2006-09-09 19:54
19年会员
UID 62242
状态 离线
1 .txt文件里面有
abc 1234 def
2.txt文件里面有
efg ?

如何实现将1.txt文件里面的1234替换到2.txt里面的?位置而使2.txt变成
efg 1234

其中1234是变量。。


希望大家能解决这个困挠我大半年的难题啊,感激不尽。
2 发表于 2006-09-14 20:42 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
其实楼主描述的问题虽然清楚,但是给的条件少了些,光实现你楼上所描述的不难,不过要看你1.txt和2.txt文本的内容是什么了?

@echo off&setlocal
for /f "tokens=*" %%a in (1.txt) do set aa=%%a
<nul set/p= %aa:~10,4%>>2.txt


楼上的问题这样就可以解决,我想你的1.txt和2.txt的内容不可能就这么点吧???
我今后在论坛的目标就是做个超级坏人!!!
3 发表于 2006-09-14 23:50 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
实现的方法很多了,可以取1.txt 中 1234 为 call 的参数来实现
4 发表于 2006-09-15 02:46 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线

@echo off
cd.>3.txt
for /f "tokens=2" %%i in (1.txt) do (
for /f %%j in (2.txt) do >>3.txt echo %%j %%i
)
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2007-02-02 20:20 ·  美国 北达科他州立大学
中级用户
★★
积分 316
发帖 152
注册 2006-06-18 13:01
20年会员
UID 57204
性别 男
状态 离线
此处仅就你给出的文本格式,1234是变量,变量长度可以变化,变量前后的空格数目也可变化


@echo off
sed "1s/abc*\(.*\)*def/\1/" 1.txt> temp1.txt
sed "/?/r temp1.txt" 2.txt|sed "1N;s/?.*\n\(.*\)/\1/"> temp2.txt
del temp1.txt
type temp2.txt
pause

[ Last edited by amao on 2007-2-3 at 02:33 AM ]
6 发表于 2007-02-03 08:39 ·  中国 内蒙古 呼和浩特 联通
新手上路
积分 7
发帖 4
注册 2007-02-03 01:15
19年会员
UID 78457
性别 男
状态 离线
不错,学习了
论坛跳转: