brent's hut

为DOS批处理增加替换文本的功能[附代码和程序] V1.0

为DOS批处理增加替换文本的功能[含源代码]ver 1.0
版本:1.0

/*
modified:
去掉了对管道的操作,尽量采用stl。
增加了帮助功能
采用了KMP算法来查找字符串。从清华大学的《数据结构》上抄的...
所有内容只被读入一次,只保存在一个地方。时间复杂度和空间复杂度应该都有所降低。
*/

/*
WARNING:程序未经过测试,只经过调试。哈
*/

用法:将strrpc.exe复制到你的system32目录或者任何一个PATH目录,在dos命令行执行即可

/*
 strrpc  [/L:m-|m+|m-n|m] [/P:m-|m+|m-n|m] [/I] [/O] original [objective] [/S:srcfile [/C]] [/E]

 [/L:m-|m+|m-n|m] 对于行,只替换(0,m]个,或[m,infinite),或[m,n]或第m行.m>=n>0 (行号从1开始)
 [/P:m-|m+|m-n|m] 对于出现的原始字符串,同上
 [/I]    搜索时忽略大小写
 [/O]    只显示替换过的行
 original   要替换的字符串
 [objective]   用来替换的字符串,如果为空则替换为空字符串
 [/S:srcfile]     指定源文件,如果没有指定,将处理键入的或由另一命令产生的文字
 [/C]    只有当指定源文件时有效。用替换的结果覆盖源文件
 [/E]    消除空行
    [/?]                显示帮助
*/

例子(在DOS命令行下):
1:
echo abcdef | strrpc abc def
defdef

2:
echo abcdef | strrpc aBC def /i
defdef

3:
echo abcabcdef | strrpc Abc def /i /p:2
abcdefdef

创建c:\test.txt内容如下
一.简单批处理内部命令简介
1.Echo 命令
打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。
语法
echo [{ on|off }] [message]
Sample:@echo off / echo hello world
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。

然后执行dos命令:
4:
strrpc echo 回音 /i /L:5-6 /p:1- /s:c:\test.txt /o
回音 [{ on|off }] [message]

5:
strrpc echo 回音 /i /L:5-6 /p:1- /s:c:\test.txt /o >result.txt
result.txt内容为
回音 [{ on|off }] [message]

第4个和第5个例子解释: 把c:\test.txt中的从第5行到第6行的第一次出现的不区分大小写"echo"替换为"回音",并只把替换过的行的替换结果输出到控制台或当前目录下的result.txt文件。

 



附件ver0.001 ver1.0

posted on 2005-11-11 13:51 brent 阅读(1085) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理