如何用批处理命令删除TXT文件里某一区域的内容

D:\xxx\文件夹有N个txt文件,每个文件都含有字符info和字符data,想把所有文件里info和data(包括这两个字符串)的内容都删掉.请问如何用.bat程序实... D:\xxx\ 文件夹有N个txt文件,每个文件都含有字符 info 和 字符 data, 想把所有文件里info 和 data (包括这两个字符串)的内容都删掉. 请问如何用.bat程序实现? 非常感谢!!
如果想把这两个字符串之间的内容都删掉(很多行) 要怎么写?非常感谢!
展开
 我来答
付芝华
2014-10-08 · TA获得超过566个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:387万
展开全部
@echo off
setlocal enabledelayedexpansion
set "v1=info"
set "v2=data"
for %%a in (*.txt) do (
findstr /i /v /c:"!v1!" "%%~a">new.tmp
findstr /i /v /c:"!v2!" new.tmp>"%%~a"
del new.tmp)

暂时把所有TXT文件包含2个字符的行都去除了,如只需要去除2个字符串,请追问下。

更多追问追答
追问
如果想把这两个字符串之间的内容都删掉(很多行) 要怎么写?非常感谢!
追答
@echo off
setlocal enabledelayedexpansion
set "v1=info"
set "v2=data"
for %%a in (*.txt) do (
set /a n=0
for /f "usebackq delims=" %%i in ("%%~a") do (
set /a "n+=1" & set "var=%%i" & set "var!n!=%%i"
echo "%%~i" | findstr /i /c:"!v1!">nul && (set n1=!n! & set "v3=!var:*%v1%=!" & call set "var!n!=%%var:!v1!!v3!=%%")
echo "%%~i" | findstr /i /c:"!v2!">nul && (set n2=!n! & set "var!n!=!var:*%v2%=!"))
(for /l %%i in (1,1,!n1!) do (echo.!var%%i!))>new.tmp
(for /l %%i in (!n2!,1,!n!) do (echo.!var%%i!))>>new.tmp & move new.tmp "%%~a")

第三行中设置第一个字符串,四行中设置第二个,顺序不能乱。


如果文本中包含 多个 字符 info 和 字符 data 可以多次执行。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式