中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-24 20:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 我遇到大难题了!怎样批量在.txt文件的开头写入内容? 查看 1,317 回复 9
楼 主 我遇到大难题了!怎样批量在.txt文件的开头写入内容? 发表于 2007-01-04 07:25 ·  中国 贵州 贵阳 云岩区 电信
初级用户
积分 36
发帖 16
注册 2007-01-02 12:15
19年会员
UID 75265
性别 男
状态 离线
我想批量在.TXT文件中写入内容,但是要求是文件的开头,请大家给帮下忙,想个主义
原来用 for /f "delims=" %i in ('dir /s/b/a d:\downloads\*.txt') do @echo 内容 >> %i
写入的是文件末尾,现在我想写入文件头部,这个难度就大了,由于是批量(大概2000个文件,内容各不同),我郁闷了

希望大家出出主义
不知道copy命令能不能从某个临时文件把内容写入文件开头呢?我试了COPY命令,也是写入尾部。。。唉
2 发表于 2007-01-04 07:56 ·  中国 广西 南宁 联通
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
copy/b 要写入的文件+源文件 新文件

PS:
3 发表于 2007-01-04 08:39 ·  中国 贵州 贵阳 云岩区 电信
初级用户
积分 36
发帖 16
注册 2007-01-02 12:15
19年会员
UID 75265
性别 男
状态 离线
我不是要新文件啊,就是改写原来的文件
用这个命令copy /b tmp.txt+1.txt 1.txt之后

就问我是否改写1.txt,点Y之后,1.txt的内容全部变成tmp.txt的了,原来的没了
4 发表于 2007-01-04 10:09 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
for /f "delims=" %%i in ('dir /s/b/a d:\downloads\*.txt') do (
copy /b d:\tmp.txt+%%i %%i.tmp
del %%i /f /q
ren %%i.tmp %%~nxi )


引用另外一个文件即可,注意tmp.txt里面最后一行是否空行是有区别的
5 发表于 2007-01-04 11:57 ·  中国 河南 许昌 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by wedd at 2007-1-3 19:39:
我不是要新文件啊,就是改写原来的文件
用这个命令copy /b tmp.txt+1.txt 1.txt之后

就问我是否改写1.txt,点Y之后,1.txt的内容全部变成tmp.txt的了,原来的没了

批处理不能单独在源文件开头写入数据(估计有第三方软件可以吧,不知道),所以要合并两个文件为新文件(最后删除源文件并改名新文件为源文件名)

当然没有了,都被新文件覆盖了,哪还来的源文件内容?
6 发表于 2007-01-04 22:59 ·  中国 贵州 贵阳 云岩区 电信
初级用户
积分 36
发帖 16
注册 2007-01-02 12:15
19年会员
UID 75265
性别 男
状态 离线
嘿嘿,谢谢楼上各位,这个论坛气氛真好
7 发表于 2007-01-04 23:08 ·  中国 贵州 贵阳 云岩区 电信
初级用户
积分 36
发帖 16
注册 2007-01-02 12:15
19年会员
UID 75265
性别 男
状态 离线
回4楼 dikex
我按照你的方法做了,不行啊
是不是do里面不能执行多句语句啊?
8 发表于 2007-01-04 23:12 ·  中国 贵州 贵阳 云岩区 电信
初级用户
积分 36
发帖 16
注册 2007-01-02 12:15
19年会员
UID 75265
性别 男
状态 离线
呵呵,是我的失误,现在我改了一下,把%%i加上引号,可以修改带空格的文件名了

for /f "delims=" %%i in ('dir /s/b/a d:\downloads\*.txt') do (
copy /b d:\tmp.txt+"%%i" "%%i".tmp
del "%%i" /f /q
ren "%%i".tmp "%%~nxi" )
9 发表于 2007-01-06 01:57 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
10 发表于 2007-01-06 02:47 ·  中国 辽宁 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
好,气氛不错!

[ Last edited by jmz573515 on 2007-1-22 at 10:20 PM ]
论坛跳转: