@echo off
chcp 65001
rem 批量替换D:\temp目录下的所有文件,把 “123”替换为“456”
rem tarDir目标目录 strOld原字符串 strNew目标字符串
set tarDir=D:\temp
set strOld=123
set strNew=456
rem 定义变量修改本地化延期
setlocal enabledelayedexpansion
rem 循环取出要处理的文件名
rem for /R %%i in (.,*) do (
for /f "tokens=*" %%i in ('dir %tarDir% /b') do (
set "var=%%i"
if not !var!.==. (
rem 单个文件一行行处理,将旧字段替换成新字段
for /f "tokens=*" %%j in (%tarDir%!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 %tarDir%!var!
)
)