批处理替换文档指定内容

2025-02-22 11:28:57
推荐回答(1个)
回答1:

方法1(能处理空白行)
@echo off
setlocal enabledelayedexpansion
cd.>newtest.txt
for /f "tokens=1* delims=:" %%i in ('findstr /n .* test.txt') do (
set "ver=%%j"
if %%i equ 5 (>>newtest.txt echo !ver:abc=cba!) else >>newtest.txt echo.!ver!
)
call start "" newtest.txt

方法2(效率相对要高,有空白行会出错)
@echo off
setlocal enabledelayedexpansion
cd.>newtest.txt
for /f "delims=" %%i in (test.txt) do (
set /a n+=1
set "ver=%%i"
if !n! equ 5 (>>newtest.txt echo !ver:abc=cba!) else >>newtest.txt echo.!ver!
)
call start "" newtest.txt

方法3(同方法1能处理空白行但输出会排除空白行的)
@echo off
setlocal enabledelayedexpansion
cd.>newtest.txt
for /f "tokens=1* delims=:" %%i in ('findstr /n . test.txt') do (
set "ver=%%j"
if %%i equ 5 (>>newtest.txt echo !ver:abc=cba!) else >>newtest.txt echo.!ver!
)
call start "" newtest.txt