如何用批处理命令删除TXT文件里某一区域的内容
D:\xxx\文件夹有N个txt文件,每个文件都含有字符info和字符data,想把所有文件里info和data(包括这两个字符串)的内容都删掉.请问如何用.bat程序实...
D:\xxx\ 文件夹有N个txt文件,每个文件都含有字符 info 和 字符 data, 想把所有文件里info 和 data (包括这两个字符串)的内容都删掉. 请问如何用.bat程序实现? 非常感谢!!
如果想把这两个字符串之间的内容都删掉(很多行) 要怎么写?非常感谢! 展开
如果想把这两个字符串之间的内容都删掉(很多行) 要怎么写?非常感谢! 展开
展开全部
@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 可以多次执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询