中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 19:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这样处理TXT的功能应该如何实现 查看 1,263 回复 6
楼 主 这样处理TXT的功能应该如何实现 发表于 2006-12-02 17:56 ·  中国 广东 深圳 电信
新手上路
积分 4
发帖 1
注册 2006-12-02 17:21
19年会员
UID 72387
性别 男
状态 离线
1个TXT文本,能否使用批处理,从第一行开始,在每行的末尾从1开始升序加数字,例如


XXXXX1
XXXXX2
XXX3
XXXXXXXXX4
XXXXX5
XXXXXXX6



──────────────── 版务记录 ────────────────
执行:namejm
原标题:这样处理TXT的功能应该如何实现
说明:因标题过于模糊,不便于论坛的搜索和管理,请在三日内修改标题。
提示:修改标题请在当前帖的右下脚点
编辑修改完毕之后按 编辑帖子 即可。
处罚:因属论坛新人,暂时不予处罚;若三日之后尚未修改标题,将扣除2点积分,
以示惩罚,并由版主强制修改标题。请点击
这里阅读论坛发帖规定,以避免在
今后的讨论中违规发帖。
──────────────── 版务记录 ────────────────


[ Last edited by namejm on 2006-12-23 at 05:02 PM ]
2 发表于 2006-12-02 18:08 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  abc.txt为原文件,new_file.txt为生成的新文件。

@echo off&setlocal EnableDelayedExpansion
set/a a=1
if exist new_file.txt del /a/q new_file.txt
for /f "delims=" %%a in (abc.txt) do (
call echo %%a!a!>>new_file.txt
set/a a+=1
)
3 发表于 2006-12-02 20:05 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  可以把 call 去掉。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
4 发表于 2006-12-03 03:02 ·  中国 江苏 苏州 中移铁通
初级用户
★★
积分 144
发帖 66
注册 2006-11-30 00:37
19年会员
UID 72121
性别 男
状态 离线
Originally posted by lxmxn at 2006-12-2 05:08:

  abc.txt为原文件,new_file.txt为生成的新文件。

@echo off&setlocal EnableDelayedExpansion
set/a a=1
if exist new_file.txt del /a/q new_file.txt
fo ...



请教一下:"setlocal EnableDelayedExpansion"这是做什么用的,为什么每个人的代码上都会有呢??
5 发表于 2006-12-03 03:15 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
19年会员
UID 67972
状态 离线
setlocal EnableDelayedExpansion是环境变量延时,搜索一下就知道了!
也可以不用!

for /f "tokens=1* delims=:" %%i in ('findstr /n .* file.txt') do echo %%j%%i >>new.txt

认识自己,降伏自己,改变自己
,才能改变别人!
6 发表于 2006-12-24 05:57 ·  中国 湖南 长沙 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
看看这个是你要的吗?这是我把别人给我的一个答案改了一下,好像正好适合你
在我这测试通过,你最好先试试,把del和ren那两行先删除.看看2.txt里的内容是不是你要的
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f %%i in (1.txt) do (
@echo %%i!a! >>2.txt
set/a a+=1
)
)
del 1.txt
ren 2.txt 1.txt

没注意2楼的,他的专业多了,呵呵,见笑了.

[ Last edited by 26933062 on 2006-12-24 at 10:19 PM ]
7 发表于 2006-12-24 11:01 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
'用VBS写的,把下面内容存为DD.VBS之后,把要想加数字的文件拖放到DD.VBS上面即可,建议“楼主”选进行测试,之后在使用。

on error resume next
set fso=createobject("scripting.filesystemobject")
set afile=fso.opentextfile(Wscript.Arguments(0),1)
do While afile.AtEndOfStream <> True
i=i+1
b=afile.readline
c= c & b &i& vbcrlf
loop
afile.close
set afile=fso.opentextfile(Wscript.Arguments(0),2)
afile.write c
afile.close
msgbox "已经给文件加上数字!",48+4096,"操作成功"


[ Last edited by jmz573515 on 2006-12-26 at 09:53 AM ]
论坛跳转: