批处理替换文本文件中的字符串,并保留换行
2013-01-04 16:24
357 查看
批处理替换文本文件中的字符串,并保留换行
@echo onREM --- File Name:ReplaceString.bat-----
REM ---Call Method----
REM ---ReplaceString "SrcFileName" "TargetFileName" "SrcStr" "TargetStr" ----
setlocal enabledelayedexpansion
REM ---File Name : Replace.bat ----------
REM ---Start Parse parameters--------------
REM ---All the parameters must be qualified with double quotation (")--------------
REM ---The first parameter (%1) is the source file name with file extension--------------
REM ---The second parameter (%2) is the target file name with file extension --------------
REM ---The third parameter (%3) is the string which will be replaced --------------
REM ---The fourth parameter (%4) is the string with which will be replaced --------------
set SrcFileName=%1
REM --- Remove " from string-------------------
set SrcFileName=%SrcFileName:"=%
set SrcFileName=%SrcFileName:~0,-1%
set TargetFileName=%2
REM --- Remove " from string-------------------
set TargetFileName=%TargetFileName:"=%
set TargetFileName=%TargetFileName:~0,-1%
set SrcStr=%3
REM --- Remove " from string-------------------
set SrcStr=%SrcStr:"=%
set SrcStr=%SrcStr:~0,-1%
set TargetStr=%4
REM --- Remove " from string-------------------
set TargetStr=%TargetStr:"=%
set TargetStr=%TargetStr:~0,-1%
echo ReplaceString.bat Parameters
echo "%SrcFileName%"
echo "%TargetFileName%"
echo "%SrcStr%"
echo "%TargetStr%"
REM ---End Parse parameters--------------
REM ---Replacing and wrinting Target File--------------
if exist "%TargetFileName%" (del "%TargetFileName%")
set lineStart=2
for /f "tokens=1* delims=" %%i in ('findstr /n .* "%SrcFileName%"') do (
set line=%%i
if "!line:~1,1!"==":" (
if "!line:~2!"=="" (
echo.>>"%TargetFileName%"
) else (
set "line=!line:~2!"
set "line=!line:%SrcStr%=%TargetStr%!"
echo !line! >>"%TargetFileName%"
)
) else (
if "!line:~2,1!"==":" (
if "!line:~3!"=="" (
echo.>>"%TargetFileName%"
) else (
set "line=!line:~3!"
set "line=!line:%SrcStr%=%TargetStr%!"
echo !line! >>"%TargetFileName%"
)
) else (
if "!line:~3,1!"==":" (
if "!line:~4!"=="" (
echo.>>"%TargetFileName%"
) else (
set "line=!line:~4!"
set "line=!line:%SrcStr%=%TargetStr%!"
echo !line! >>"%TargetFileName%"
)
)
)
)
)
REM ---End of BAT--------------
相关文章推荐
- 批处理文件替换字符串
- 使用批处理文件(batch file)替换字符串
- 批处理 保留空行替换字符串
- 01-替换输入文本的空格和换行(字符串处理)
- vi部分命令. 替换操作; 文本格式转换; 在整个文件中替换; 在行首尾添加字符串.
- Java实现--替换文本文件中所有符合条件的字符串
- 批处理文件操作:替换文本文件某系字符写入新文件、遍历目录并进行字符串替换、拷贝文件到新目录、去掉文件扩展名
- 批处理查找和替换文件指定字符串
- shell遍历当前目录下的文件,用去掉文件后缀的字符串替换文件中的文本
- vi命令,替换操作,文本格式转换,在整个文件中替换,在行首尾添加字符串
- 读写文件.替换字符串
- 替换文件中某个字符串并写入新内容(Java代码实现)
- linux 命令替换文件夹下所有文件指定字符串为***
- Java基本功练习十四(字符串和文本IO【文件读写数据、字符串生成器、String类方法、相关技巧】)
- 把textarea中字符串里含有的回车换行替换成<br>的javascript代码
- Java实现的文本字符串操作工具类实例【数据替换,加密解密操作】
- Linux查找和替换目录下所有文件中字符串(转载)
- vi 中将 Windows 文本文件中的 ^M (回车换行)全部替换掉
- Java替换字符串中的回车换行
- 用java进行文件的读写和字符串的替换