批处理替换文本文件中的字符串,并保留换行

批处理替换文本文件中的字符串,并保留换行

@echo on

 

REM --- 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--------------

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值