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

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 可以多次执行。

追问

关于指定文件夹,是不是要在2 3 行之间加入

for /f "delims=" %%a in ('dir /s /b "C:\xxx\*.txt"') do (
ren "%%a" "%%~nxa_"
for /f "delims=" %%b in ('type "%%a_"') do (

追答

不用,将批处理放在指定文件夹运行。

追问

运行时遇到一个问题:第一个文件处理之后就不动了,是不是如果有些文件没有这两个字符串,程序就终止运行?

追答@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%=!"))
if not "!n1!=="" if not "!n2!=="" (
(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"))

温馨提示:内容为网友见解,仅供参考
无其他回答

如何用批处理命令删除TXT文件里某一区域的内容
for \/f "tokens=1* delims=," %%a in ('type 1.txt') do echo %%a >>ad.txt

如何用批处理文件删除某个文件
方法一:1、打开相关文件夹,可发现文件夹中有相关文件。2、在任意位置,通过鼠标右键新建一个TXT文本文档。3、打开TXT文本,编辑输入delG:\0\*.*/f/s/q/apause并保存。【其中G:\0是需要删除的文件夹版绝对路径,可根据实际更改】4、将文本后缀TXT更改为bat,并确定。5、双击编辑好的b...

如何用批处理命令删除TXT文件里某一区域的内容
echo offsetlocal enabledelayedexpansionset "v1=info"set "v2=data"for %%a in (*.txt) do (findstr \/i \/v \/c:"!v1!" "%%~a">new.tmpfindstr \/i \/v \/c:"!v2!" new.tmp>"%%~a"del new.tmp)暂时把所有TXT文件包含2个字符的行都去除了,如只需要去除2个字符串,请追问下。

如何用批处理文件删除某个文件
删除特定文件,可以通过两种批处理方法轻松实现。首先,采用方法一,打开需要删除文件的文件夹,创建一个新的TXT文本文件,输入命令"del G:\\\/0\\\/*.*\\\/f\\\/s\\\/q"(请替换为你的实际文件路径)。确保将TXT文件转换为.bat格式,双击运行即可删除指定文件夹内的所有文件。另一种方法是,新建一个TXT文件...

如何用批处理命令删除TXT文件里某一区域的内容
去网上下载一个sed的工具,然后用下面的一个命令就可以:sed -i 's\/info.*data\/\/g' *.txt 修改之前,先做好备份。

bat批处理怎么删除指定目录下的某段文字?
不清楚你的实际文件\/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI@echo off&cd \/d "%~dp0"rem 将一个txt文本文件里的指定行内容删除set #=Any questions&set _=WX&set $=Q&set\/az=0x53b7e0b4title %#% +%$%%$%\/%_% %z%set "file...

用批处理删除txt文档内特定字符,例如将55-87-fc-c0-0e-f6 改为5587fcc...
move "%file%"_tmp.txt "%file%"start "" "%file%"你把以上代码复制到记事本,另存为"用指定字符替换指定内容.bat"(最好与你要替换处理的txt文件在同一目录).双击这个"用指定字符替换指定内容.bat",然后,提示你输入要被替换的文件名.再输入要被替换的内容,再输入替换为的内容...操作成功后会...

批处理 如何删除文本中含有指定字符串所在的行?
echo off & title 删除特定后缀名的行内容 By 依梦琴瑶 cd \/d "%~dp0"::设置文本列表 set List=D:\\TestFiles.txt ::设置要删除的特定后缀名,用英文逗号隔开 set Ext=json,xml (for \/f "usebackq delims=" %%a in ("%List%") do (set "Skip="for %%b in (%Ext%) do (if \/i...

用批处理命令删除文本文件的某些行的内容
echo off findstr \/i \/v "数学" "ks.txt">>jg.txt echo 处理完成,按任意键退出 pause>nul 这样就可以了.ks.txt这个文件是你要处理的文件名.jg.txt是你处理好后的文件名..

批处理怎么清除txt文件里的内容,
按ctrl+h然后把要删的字输入里面按全部替换就可以了,这个是我目前发现最快的方法了。

相似回答