Bat脚本批处理 替换一个文件目录下面的所有指定文件类型的 字符串

因为最近工作在做及其无聊的批量修改代码工程,所以涉及到一些 修改路径文本的替换

人懒各种google,度娘,搜索了一个不错的demo

@echo off

rem 进入批处理文件所在的路径
cd C:\Users\yitingq\Desktop\test

echo ***** Replace "old" as "new" *****
rem 定义要替换的新旧字符串
set strOld=testOldStr
set strNew=testNewStr

rem 定义变量修改本地化延期
setlocal enabledelayedexpansion

rem 循环取出要处理的文件名
for /f "tokens=*" %%i in ('dir C:\Users\yitingq\Desktop\test\*.txt /b') do (
    set "var=%%i"
    if not !var!.==. (
rem 单个文件一行行处理,将旧字段替换成新字段
    for /f "tokens=*" %%j in (!var!) do (
        set "tmp=%%j"
        if not !tmp!.==. (
          set "tmp=!tmp:%strOld%=%strNew%!"
          rem 将处理后的每一行记录追加到temp.txt文件中
          echo !tmp!>>temp.txt
        )
    )
    rem 在单个文件的每一行经过替换操作后,将处理后的文本从temp.txt临时文件剪贴到目标处理文件中(剪贴后临时文件会自动删除)
    move temp.txt !var!
    )
)

pause

 

posted @ 2018-11-05 13:08  nemobischon  阅读(1767)  评论(1编辑  收藏  举报