批处理替换文件夹下所有txt中的指定内容A为B,而且空白行需要保留,实现了替换功能但是没有保留空白行

@echooffsetlocalenabledelayedexpansionfor/f"delims="%%iin('dir/b"*.txt"')do(for/f"ski... @echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b "*.txt"') do (
for /f "skip=2 delims=" %%a in ('find /v "%%" "%%i"') do (
set "word1=%%a"

set "word1=!word1: A=B!"
rem 被替换内容A=替换内容B

echo,!word1! >>"%%~ni_tmp.txt"
)
del "%%i" /f /q
ren "%%~ni_tmp.txt" "%%i"

)

pause
展开
 我来答
依梦琴瑶
高粉答主

2018-01-29 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
如果您的txt中不包含英文冒号,那么可以用findstr /n .*的方式列出空白行,否则就不行了,因为这样是给每一行加上行号,而行号后面就是跟着一个英文冒号,如果用delims=:的方式做分割势必会对原文中的英文冒号有影响。
要不您用vbs的替换功能进行替换吧,它可以保留空行,但可能针对包含%的行内容也会进行替换。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式