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

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

@echo off
setlocal EnableDelayedExpansion

set "CurrCD=%~dp0"
set "strOld=aaaaa"
set "strNew=zzzzz"

:: 将当前目录(包括子目录)下的所有 TXT 文本中的 aaaaa 替换为 zzzzz
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%"
 
  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值