Board logo

标题: [已结]如何修改文件 [打印本页]

作者: duxingxia109     时间: 2008-11-9 22:14    标题: [已结]如何修改文件

例如一个txt文件中有如下几行
..N行..
A=3
B=4
C=5
..N行..
我在分析这个文件的时候想把文件修改成
..N行..
A=3
B=4
C=90
..N行..

对C后面的值进行修改,请高手指教,多谢。

[ Last edited by HAT on 2008-11-13 at 10:06 ]
作者: tireless     时间: 2008-11-9 22:35
就 5 行吗?只改变C后面的值?那随便怎么弄都没关系。但是没有直接修改文本内容的命令。
作者: duxingxia109     时间: 2008-11-9 22:38
是很多行,我要修改的那行在中间,多谢。
作者: tireless     时间: 2008-11-9 22:47
C 的值是否是固定的?是否有空白行?是否每行都是 左=右 的形式?

[ Last edited by tireless on 2008-11-11 at 09:55 ]
作者: duxingxia109     时间: 2008-11-10 22:30
C的值不是固定的。

思路是不是这样:
判断如果不是修改的那行,就重新定向到新文件。
如果是修改的那行,修改后重新定向到新文件。

还有没有更好的办法?新人请教
作者: tireless     时间: 2008-11-11 09:47
感觉方法比较笨:
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in (test.txt) do (
  set str=%%a
  if /i "!str:~,2!" equ "c=" (echo c=90>>test_new.txt) else echo %%a>>test_new.txt
)

作者: HAT     时间: 2008-11-11 10:19

@echo off
change a.txt /from "C=*" /to "C=90"
change.exe可以去这里下载:批处理室附件收集专用帖
作者: HAT     时间: 2008-11-11 10:22

@echo off
sed -i "s/C=.*/C=90/g" a.txt
sed.exe可以去这里下载:批处理室附件收集专用帖
作者: duxingxia109     时间: 2008-11-13 08:14
多谢HAT大侠