中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-17 02:34
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何在文本文件开头添加一行内容 查看 1,417 回复 12
楼 主 如何在文本文件开头添加一行内容 发表于 2009-01-27 03:00 ·  中国 四川 南充 仪陇县 电信
初级用户
★★
积分 100
发帖 80
注册 2008-09-12 15:08
UID 125478
性别 男
状态 离线
我有多个几百个文本文件,准备在每个文件开头插入一行:

例我的其中一个文件文件为:
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 也行。

我在网上搜索了好久,没找到合适的代码。请大家帮忙!
2 发表于 2009-01-27 11:04 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
UID 59307
状态 离线
新文件存为 “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
┌───────┐
├→学习→实践→┤
└───────┘
3 发表于 2009-01-28 00:05 ·  中国 四川 南充 仪陇县 电信
初级用户
★★
积分 100
发帖 80
注册 2008-09-12 15:08
UID 125478
性别 男
状态 离线
谢谢wxcute仁兄。

要是我只想在原文件上添加该行,而不是另外生成一个"new_"加原文件名的文件该如何写代码呢?
4 发表于 2009-01-28 00:14 ·  中国 四川 遂宁 电信
中级用户
★★
积分 278
发帖 103
注册 2006-10-21 21:08
UID 67562
性别 男
状态 离线
另外生成一个"new_"加原文件名的文件,生成后更改为原文件名,不就是
原文件了,只要能达目的就行,不要认死理.实在看不惯原来的,删除不就行了.
一个专搜注册信息的链接注册信息搜索--历史是一个旋转的车轮,它的轨迹总是那样的相似回复后可见
5 发表于 2009-01-28 00:26 ·  中国 四川 南充 仪陇县 电信
初级用户
★★
积分 100
发帖 80
注册 2008-09-12 15:08
UID 125478
性别 男
状态 离线
Thank you!
6 发表于 2009-01-28 11:53 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
UID 59307
状态 离线
也行,把 “new_” 字符串去掉就好。
┌───────┐
├→学习→实践→┤
└───────┘
7 发表于 2009-01-28 19:33 ·  中国 广西 南宁 电信
初级用户
积分 115
发帖 45
注册 2007-03-03 10:09
UID 80655
性别 男
状态 离线
sed -i "1i机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号" *.txt


[ Last edited by ceii on 2009-1-28 at 19:35 ]
8 发表于 2009-01-29 13:35 ·  中国 四川 宜宾 联通
初级用户
积分 56
发帖 40
注册 2009-01-23 23:49
UID 137337
性别 男
状态 离线
好,很实用啊。
9 发表于 2009-01-31 02:12 ·  中国 四川 南充 阆中市 电信
初级用户
★★
积分 100
发帖 80
注册 2008-09-12 15:08
UID 125478
性别 男
状态 离线
Originally posted by ceii at 2009-1-28 07:33 PM:
sed -i "1i机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号" *.txt


怎么生成一个没有扩展名的文件"sedDOSSU?"?,虽然用记事本能打开,毕竟不方便?
10 发表于 2009-02-01 10:47 ·  中国 广西 南宁 电信
初级用户
积分 115
发帖 45
注册 2007-03-03 10:09
UID 80655
性别 男
状态 离线
这是版本问题。
我使用的是 GNU sed version 4.0.7
11 发表于 2009-02-01 12:02 ·  新加坡 Microsoft
初级用户
★★
积分 100
发帖 93
注册 2009-01-14 15:04
UID 136661
性别 男
来自 湖南
状态 离线
2搂得不错
但是有一个缺点:如果原TXT文件有以"机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号"的话,而且还有其他内容.
set/p fh=<"%%i"
if not "!fh!"=="%head%" copy/b head.ini+"%%i" "new_%%i"

是否还应该加上别的判断呢?
12 发表于 2009-02-05 21:58 ·  中国 黑龙江 哈尔滨 电信
新手上路
积分 15
发帖 15
注册 2009-01-24 10:46
UID 137352
性别 男
状态 离线
哦 原来还可以这样的呀
学习了
13 发表于 2009-07-13 07:00 ·  中国 北京 联通
新手上路
积分 13
发帖 8
注册 2007-05-11 19:31
UID 88211
性别 男
状态 离线
@echo 机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号 >>header.txt
copy/b header.txt+detal.txt
del detal.txt
ren header.txt detal.txt
论坛跳转: