为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