中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]想问问如何读取文本文件的一段内容并输出
作者:
标题: [已结]想问问如何读取文本文件的一段内容并输出 上一主题 | 下一主题
yrt11
初级用户





积分 22
发帖 8
注册 2008-9-26
状态 离线
『楼 主』:  [已结]想问问如何读取文本文件的一段内容并输出

a.txt中

01

我我我我
我我我我

02

你你你你
你你你你
你你你你

03

他他他他
他他他他


文本文件的01,02,03中的长度不同,我想任意取文本文件中02---03中的内容,并把它保存到b.txt文件。

[ Last edited by HAT on 2008-11-5 at 17:58 ]

2008-9-26 11:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 2 楼』:  

任意取文本文件中02---03中的内容 = 取02段的内容或取03段的内容
                     还是...                      = 取02段的任意内容或取03段的任意内容

[ Last edited by tireless on 2008-9-26 at 11:42 AM ]

2008-9-26 11:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 3 楼』:  


@echo off
for /f "delims=" %%a in (a.txt) do (
      if defined a if "%%a" neq "03" (echo %%a) else pause>nul&exit/b
      if "%%a" equ "02" set a=a
)




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-9-26 11:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yrt11
初级用户





积分 22
发帖 8
注册 2008-9-26
状态 离线
『第 4 楼』:  取所有内容

取所有内容

2008-9-26 12:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yrt11
初级用户





积分 22
发帖 8
注册 2008-9-26
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by pusofalse at 2008-9-26 11:50 AM:
[code]@echo off
for /f "delims=" %%a in (a.txt) do (
      if defined a if "%%a" neq "03" (echo %%a) else pause>nul&exit/b
      if "%%a" equ " ...

想问问怎么保存到b.txt文件里

2008-9-26 12:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 6 楼』:  


@echo off
for /f "delims=" %%a in (a.txt) do (
      if defined a if "%%a" neq "03" (echo>>b.txt %%a) else pause>nul&exit/b
      if "%%a" equ "02" set a=a
)




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-9-26 12:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yrt11
初级用户





积分 22
发帖 8
注册 2008-9-26
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by pusofalse at 2008-9-26 12:09 PM:
[code]@echo off
for /f "delims=" %%a in (a.txt) do (
      if defined a if "%%a" neq "03" (echo>>b.txt %%a) else pause>nul&exit/b
      if "%%a&qu ...

牛人,谢谢。。。。。。。。。。。。。。。。。。。。。

2008-9-26 12:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yrt11
初级用户





积分 22
发帖 8
注册 2008-9-26
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by pusofalse at 2008-9-26 12:09 PM:
[code]@echo off
for /f "delims=" %%a in (a.txt) do (
      if defined a if "%%a" neq "03" (echo>>b.txt %%a) else pause>nul&exit/b
      if "%%a&qu ...

我要截取多个文件怎么办啊

@echo off
for /f "delims=" %%a in (hint.txt) do (
      if defined a if "%%a" neq "02" (echo>>hint01.txt %%a) else pause>nul&exit/b
      if "%%a" equ "01" set a=a
)

@echo off
for /f "delims=" %%a in (hint.txt) do (
      if defined a if "%%a" neq "03" (echo>>hint02.txt %%a) else pause>nul&exit/b
      if "%%a" equ "02" set a=a
)

这样好像不行

2008-9-26 12:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ygrzzz
初级用户





积分 62
发帖 24
注册 2008-9-17
状态 离线
『第 9 楼』:  

findstr /n ....02 a.txt 设置02行的行号hn1
findstr /n ....03 a.txt 设置03行的行号hn2
然后想办法输出行号hn1与hn2之间的内容
具体代码细节我不会,我觉得我的思路应该可行

6楼的代码比较怪异的感觉,居然运行结果是对的
if %%a 不等于03就写入b.txt,可是
if defined a 啥意思呢,变量a不为空值的意思吗
set a=a 就能截取到上限了?
简单而高深啊,理解不透。。。

[ Last edited by ygrzzz on 2008-9-26 at 12:45 PM ]

2008-9-26 12:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yrt11
初级用户





积分 22
发帖 8
注册 2008-9-26
状态 离线
『第 10 楼』:  

我能将如此之类的多个批处理文件最后再合到一个批处理去行吗

2008-9-26 12:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by yrt11 at 2008-9-26 12:32:
我能将如此之类的多个批处理文件最后再合到一个批处理去行吗

可以的,只需要用for把多个文件连接起来就可以了。

  Quote:
@echo off
for /f "delims=" %%a in (file1.txt file2.txt file3.txt) do (
      if defined a if "%%a" neq "03" (echo>>b.txt %%a) else pause>nul&exit/b
      if "%%a" equ "02" set a=a
      if "%%a" equ "03" set a=
)



2008-9-26 18:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hmilywenjia
新手上路





积分 8
发帖 5
注册 2008-2-2
状态 离线
『第 12 楼』:  求助:用批处理实现导出oracle数据库!!

我现在有个文本文件,里面的内容是   
4360,BM6333     
4367,BM6338   
4373,BM6322      
4385,BM6334   
4391,BM6323
这样的,要把第一列的值符给一个变量1,把第二列的内容付给变量2,怎么实现呢?

exp 用户名/密码@服务器名 file=e:\WorkSpace\变量2.dmp table=(mcc_asyn_pos) query=\"where suid=变量1 and utc between 1216483200 and 1222704000\"

这语句是用来导出oracle数据库的内容的!!
谢谢,不想手工一个一个写,就想用批处理实现下!!

另外我留个QQ:147180994,方便以后请教问题,谢谢!!

2008-11-5 16:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 13 楼』:  Re 12楼

有问题请单独发帖提问,你在别人的帖子里面跟帖提问的话,很少有人能看到你的问题,愿意回答问题的就更少了。



2008-11-5 17:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: