您的位置:首页 > 其它

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

2013-01-04 16:24 357 查看

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

@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--------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: