楼 主
[已结]如何修改文件
发表于 2008-11-09 22:14 · 中国 北京 鹏博士BGP
新手上路
★
积分 4 发帖 12 注册 2008-11-02 21:39 17年会员 UID 129813 性别 男
状态 离线
例如一个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 ]
第 2 楼
发表于 2008-11-09 22:35 · 中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
就 5 行吗?只改变C后面的值?那随便怎么弄都没关系。但是没有直接修改文本内容的命令。
第 3 楼
发表于 2008-11-09 22:38 · 中国 北京 鹏博士BGP
新手上路
★
积分 4 发帖 12 注册 2008-11-02 21:39 17年会员 UID 129813 性别 男
状态 离线
第 4 楼
发表于 2008-11-09 22:47 · 中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
C 的值是否是固定的?是否有空白行?是否每行都是 左=右 的形式?
[ Last edited by tireless on 2008-11-11 at 09:55 ]
第 5 楼
发表于 2008-11-10 22:30 · 中国 北京 鹏博士BGP
新手上路
★
积分 4 发帖 12 注册 2008-11-02 21:39 17年会员 UID 129813 性别 男
状态 离线
C的值不是固定的。
思路是不是这样:
判断如果不是修改的那行,就重新定向到新文件。
如果是修改的那行,修改后重新定向到新文件。
还有没有更好的办法?新人请教
第 6 楼
发表于 2008-11-11 09:47 · 中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
感觉方法比较笨:
@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
)
第 7 楼
发表于 2008-11-11 10:19 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
change a.txt /from "C=*" /to "C=90"
change.exe可以去这里下载:
批处理室附件收集专用帖
第 8 楼
发表于 2008-11-11 10:22 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
sed -i "s/C=.*/C=90/g" a.txt
sed.exe可以去这里下载:
批处理室附件收集专用帖
第 9 楼
发表于 2008-11-13 08:14 · 中国 北京 鹏博士BGP
新手上路
★
积分 4 发帖 12 注册 2008-11-02 21:39 17年会员 UID 129813 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正