中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理-文本文档中的数据覆盖
作者:
标题: [求助]批处理-文本文档中的数据覆盖 上一主题 | 下一主题
condor
新手上路





积分 5
发帖 5
注册 2009-1-5
状态 离线
『楼 主』:  [求助]批处理-文本文档中的数据覆盖

文本文档A.txt和B.txt中存有很多数据,现在只是将B.txt中的前9个字符读出覆盖掉

A.txt文件头部的前9个字符(注:两个文件中的数据都不止一行,每行都不止9个字符 ),请问如何用批处理实现?


问题的详细描述:

B.txt和A.txt中的每行前九个字符都是数字,只覆盖第一行的,其它行不处理。
如B.txt 中为

17.735816,21.335872,21.335872
22.761335,22.761339,22.761343
23.452122,23.452132,23.452143


A.txt 中为

21.335872,21.335872,21.335872
22.761335,22.761335,22.761335
23.452122,23.452122,23.452122  

只是读取计算后得到的B.txt中第一行前九个字符(17.735816 每次计算的结果不同,但是都保存在B.txt中第一行前九个字符)替换掉A.txt中第一行前九个字符(21.335872 为初始数据,随初始条件改变而改变,但是要替换的数据位置在A.txt中第一行的前九个字符)

[ Last edited by condor on 2009-1-6 at 20:19 ]

2009-1-6 11:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BaseCoder
初级用户





积分 20
发帖 13
注册 2009-1-5
状态 离线
『第 2 楼』:  

问题不详细哦

1、是不是B.txt中的每行前九个字符都要覆盖掉A.txt中的对应行的前就各字符
2、字符是否也算空格呢?(空格要不要也覆盖)
3、如果没有空格那是不是所有的前九个字符都连在一起呢

2009-1-6 11:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
condor
新手上路





积分 5
发帖 5
注册 2009-1-5
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by BaseCoder at 2009-1-6 11:28:
问题不详细哦

1、是不是B.txt中的每行前九个字符都要覆盖掉A.txt中的对应行的前就各字符
2、字符是否也算空格呢?(空格要不要也覆盖)
3、如果没有空格那是不是所有的前九个字符都连在一起呢

B.txt和A.txt中的每行前九个字符都是数字,只覆盖第一行的,其它行不处理。
如B.txt 中为

17.735816,21.335872,21.335872
22.761335,22.761339,22.761343
23.452122,23.452132,23.452143


A.txt 中为

21.335872,21.335872,21.335872
22.761335,22.761335,22.761335
23.452122,23.452122,23.452122  

只是读取计算后得到的B.txt中第一行前九个字符(17.735816 每次计算的结果不同,但是都保存在B.txt中第一行前九个字符)替换掉A.txt中第一行前九个字符(21.335872 为初始数据,随初始条件改变而改变,但是要替换的数据位置在A.txt中第一行的前九个字符)

2009-1-6 12:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  Re 3楼

建议把详细的问题描述更新到顶楼,以便更多人查看。



2009-1-6 19:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 5 楼』:  

@echo off& setlocal enabledelayedexpansion
set /p var=<b.txt >nul
set var=%var:~0,9%
set _n=0
for /f "delims=" %%a in ('findstr /o .* a.txt') do (
set str=%%a
set str=!str:*:=!
if "!_n!"=="0" (set _n=1&echo.!var!!str:~9!>a.txt) else (echo.!str!>>a.txt)
)
set /p str=<a.txt>nul
if "%str:~0,9%"=="%var%" echo 替换成功
pause

[ Last edited by netbenton on 2009-1-26 at 01:18 ]



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-1-26 01:16
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
condor
新手上路





积分 5
发帖 5
注册 2009-1-5
状态 离线
『第 6 楼』:  

非常感谢!

2009-2-25 23:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
condor
新手上路





积分 5
发帖 5
注册 2009-1-5
状态 离线
『第 7 楼』:  

谢谢netbenton,实现方法好巧哦!

2009-2-26 00:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: