CMD/BAT 批处理方式进行文件的字符串搜索替换,完美解决方案...

发布于 2023-05-23 21:01:40

在网上找了很久,想用 CMD/BAT 批处理的方式,来进行文件的字符串搜索替换工作。
看了,试了,一大堆。不是有问题,就是有瑕疵。不能完美解决问题。
只好自己想,自己做了。
我给出的方案,完美解决问题。而且简单。简单的不能再简单了。

@echo off
setlocal EnableDelayedExpansion

set "CurrCD=%~dp0"
set "strOld=aaaaa"
set "strNew=itwenda.com"

:: 将当前目录(包括子目录)下的所有 TXT 文本中的 aaaaa 替换为 itwenda.com
for /f %%i in ('dir /b /s /a:-d *.txt') do (
  powershell -Command "(gc %%i) -replace '%strOld%', '%strNew%' | Out-File %%i"
)

补充:如何删除包含特定字符串的所有行呢?

@echo off
setlocal EnableDelayedExpansion

:: 删除 d:\aaa.txt 中,包含字符串 abc 的所有行
set "FileName=d:\aaa.txt"
set "sDelLine=abc"
powershell -Command "$data = foreach($line in gc %FileName%){ if($line -notlike '*%sDelLine%*') {$line}} $data | Out-File %FileName%"



关注公众号,了解更多it技术(it问答网

0 条评论

发布
问题