中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 判断不同行的内容做不同操作批处理
作者:
标题: 判断不同行的内容做不同操作批处理 上一主题 | 下一主题
pigvip
新手上路





积分 17
发帖 6
注册 2006-9-21
状态 离线
『楼 主』:  判断不同行的内容做不同操作批处理

有这样的一个文件,例如名为test.txt 文件内容如下:
org=1.3
org.TYPE=regPt
dod=1.3.6
dod.TYPE=regPt
internet=1.3.6.1
internet.TYPE=regPt
directory=1.3.6.1.1
directory.TYPE=regPt
我想整理好的格式是这样的 如果是.TYPE=regPt,那么显示成如下形式
-- 1.3
org OBJECT IDENTIFIER ::= { iso 3 }   //org这个特殊
-- 1.3.6
dod OBJECT IDENTIFIER ::= { org 6 }
-- 1.3.6.1
internet OBJECT IDENTIFIER ::= { dod 1 }
-- 1.3.6.1.1
directory OBJECT IDENTIFIER ::= { internet 1 }

[ Last edited by namejm on 2006-10-17 at 01:11 ]

2006-10-10 02:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


汗一个先……

如果工作量不大的话,强烈建议手工~~


2006-10-10 11:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pigvip
新手上路





积分 17
发帖 6
注册 2006-9-21
状态 离线
『第 3 楼』:  

在论坛上找了点资料,终于实现这个功能了。

2006-10-12 01:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 4 楼』:  

如果工作量大的话,强烈建议用Excel。
需要每天都重复使用的自动功能才考虑用bat




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-10-12 02:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pigvip
新手上路





积分 17
发帖 6
注册 2006-9-21
状态 离线
『第 5 楼』:  

Excel我不太懂,可以实现我的这个功能吗?

2006-10-14 03:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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



  Quote:
Originally posted by pigvip at 2006-10-12 01:43:
在论坛上找了点资料,终于实现这个功能了。

  楼上的可以说来听听是怎么实现的吗?我也想学习一下,谢了。


2006-10-14 07:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pigvip
新手上路





积分 17
发帖 6
注册 2006-9-21
状态 离线
『第 7 楼』:  

其实这个部分只是xxx.TYPE=regPt类型的脚本,在这个文件中还有不同类型,写法也不一样,下面的是相关批处理(其实如果光是regPt类型的话,还能写的更简单些。)

setlocal enabledelayedexpansion
for /F "skip=18 tokens=1,2 delims==" %%a in (test.txt) do (
        set first=!second!
        set second=%%a
        set Third=!Fourth!
        set Fourth=%%b
if "!Fourth!" equ "regPt" (if "!Third:~-2,1!" equ "." (
for /F "tokens=1,2 delims==" %%i in ('findstr /r "!Third:~0,-2!$" test.txt') do echo !first! OBJECT IDENTIFIER ::= { %%i !Third:~-1! } >>7.txt
) else (if "!Third:~-3,1!" equ "." (
for /F "tokens=1,2 delims==" %%i in ('findstr /r "!Third:~0,-3!$" test.txt') do echo !first! OBJECT IDENTIFIER ::= { %%i !Third:~-2! } >>7.txt
) else (if "!Third:~-4,1!" equ "." (
for /F "tokens=1,2 delims==" %%i in ('findstr /r "!Third:~0,-4!$" test.txt') do echo !first! OBJECT IDENTIFIER ::= { %%i !Third:~-3! } >>7.txt
) else (if "!Third:~-5,1!" equ "." (
for /F "tokens=1,2 delims==" %%i in ('findstr /r "!Third:~0,-5!$" test.txt') do echo !first! OBJECT IDENTIFIER ::= { %%i !Third:~-4! } >>7.txt
) else (if "!Third:~-6,1!" equ "." for /F "tokens=1,2 delims==" %%i in ('findstr /r "!Third:~0,-6!$" test.txt') do echo !first! OBJECT IDENTIFIER ::= { %%i !Third:~-5! } >>7.txt)
)
)
)
)
)

2006-10-16 21:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: