中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何在文本文件开头添加一行内容
作者:
标题: 如何在文本文件开头添加一行内容 取消高亮 | 上一主题 | 下一主题
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『楼 主』:  如何在文本文件开头添加一行内容

我有多个几百个文本文件,准备在每个文件开头插入一行:

例我的其中一个文件文件为:
5471,安德刚,"1,100.00",2000-6-18,2001-4-20,2003-9-21,呆帐,损失,,210.87,4.851E+13,8.81301E+13
5471,安德刚,"9,670.00",1997-10-8,1998-9-20,2003-9-21,呆帐,损失,,4659.83,4.851E+13,8.81301E+13
5471,安德刚,"3,120.00",1998-9-23,1999-9-20,2003-9-21,呆帐,损失,,598.11,4.851E+13,8.81301E+13
……

要在开头插入一行:
机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号

如何写代码?
用sed 也行。

我在网上搜索了好久,没找到合适的代码。请大家帮忙!

2009-1-27 03:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 2 楼』:  

新文件存为 “new_原名” 格式。
@echo off
setlocal enableDelayedExpansion
set head=机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号
echo %head%>head.ini
for /f "delims=" %%i in ('dir/b *.txt') do (
set/p fh=<"%%i"
if not "!fh!"=="%head%" copy/b head.ini+"%%i" "new_%%i"
)
pause




┌───────┐
├→学习→实践→┤
└───────┘
2009-1-27 11:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 3 楼』:  

谢谢wxcute仁兄。

要是我只想在原文件上添加该行,而不是另外生成一个"new_"加原文件名的文件该如何写代码呢?

2009-1-28 00:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 4 楼』:  

另外生成一个"new_"加原文件名的文件,生成后更改为原文件名,不就是
原文件了,只要能达目的就行,不要认死理.实在看不惯原来的,删除不就行了.



一个专搜注册信息的链接**** Hidden to Non-Reply Visitors *****回复后可见
2009-1-28 00:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 5 楼』:  

Thank you!

2009-1-28 00:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 6 楼』:  

也行,把 “new_” 字符串去掉就好。



┌───────┐
├→学习→实践→┤
└───────┘
2009-1-28 11:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ceii
初级用户





积分 115
发帖 45
注册 2007-3-3
状态 离线
『第 7 楼』:  


sed -i "1i机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号" *.txt
[ Last edited by ceii on 2009-1-28 at 19:35 ]

2009-1-28 19:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
motop
初级用户





积分 56
发帖 40
注册 2009-1-23
状态 离线
『第 8 楼』:  

好,很实用啊。

2009-1-29 13:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 9 楼』:  

[quote]Originally posted by ceii at 2009-1-28 07:33 PM:
sed -i "1i机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号" *.txt
怎么生成一个没有扩展名的文件"sedDOSSU?"?,虽然用记事本能打开,毕竟不方便?

2009-1-31 02:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ceii
初级用户





积分 115
发帖 45
注册 2007-3-3
状态 离线
『第 10 楼』:  

这是版本问题。
我使用的是 GNU sed version 4.0.7

2009-2-1 10:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zhengqian529
初级用户





积分 100
发帖 93
注册 2009-1-14
来自 湖南
状态 离线
『第 11 楼』:  

2搂得不错
但是有一个缺点:如果原TXT文件有以"机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号"的话,而且还有其他内容.
set/p fh=<"%%i"
if not "!fh!"=="%head%" copy/b head.ini+"%%i" "new_%%i"

是否还应该加上别的判断呢?

2009-2-1 12:02
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (250988158)  编辑帖子  回复  引用回复
samliu
新手上路





积分 15
发帖 15
注册 2009-1-24
状态 离线
『第 12 楼』:  

哦  原来还可以这样的呀
学习了

2009-2-5 21:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bobofu
新手上路





积分 13
发帖 8
注册 2007-5-11
状态 离线
『第 13 楼』:  

@echo 机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号 >>header.txt
copy/b header.txt+detal.txt
del detal.txt
ren header.txt detal.txt

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

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


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



论坛跳转: