Batch file 如何删除某些字符&;文本文件中的文本?
我有一个如下所示的文本文件:Batch file 如何删除某些字符&;文本文件中的文本?,batch-file,Batch File,我有一个如下所示的文本文件: <Line Text="***********TITLE************" /> <Line Text="***REPORT****" /> <Line Text=TEXT" /> <Line Text=" " /> <Line Text="TEXT" /> <Line Text="TEXT" /> <Line Text=" " /> <L
<Line Text="***********TITLE************" />
<Line Text="***REPORT****" />
<Line Text=TEXT" />
<Line Text=" " />
<Line Text="TEXT" />
<Line Text="TEXT" />
<Line Text=" " />
<Line Text="TEXT" />
<Line Text="TEXT" />
<Line Text=" " />
***********TITLE************
***REPORT****
TEXT
TEXT
TEXT
TEXT
TEXT
我尝试了以下方法:
@echo off
setlocal enableextensions disabledelayedexpansion
set "search=^<Line Text"
set "replace="
set "textFile=test.txt"
for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
>>"%textFile%" echo(!line:%search%=%replace%!
endlocal
)
@echo关闭
setlocal enableextensions disabledelayedexpansion
设置“search=^这里有几个例子可以帮助您
此示例仅适用于提供的文本文件格式和内容:
@Echo Off
Set "InputFile=infile.txt"
Set "OutputFile=outfile.txt"
If Exist "%InputFile%" ((For /F UseBackQTokens^=2Delims^=^=^" %%A In (
"%InputFile%")Do Set /P "=%%A"<NUL&Echo()>"%OutputFile%")
在任何一种情况下,您都只需要根据需要修改2
和3
行上的文件名/路径。代码中有两个问题:
您需要在搜索中
并替换字符串,如^>
和^>
,因为当变量%search%
和%replace%
展开时,这些字符串将不带引号
=
-符号,因为它分隔了搜索字符串和替换字符串rem/*在引号“`”处拆分每一行(这需要
rem undocumented unquoted选项字符串语法'for/F`):*/
对于/F令牌^=2^delims^=^“%%I in('type“test.txt”^&^>“test.txt”rem/')do(
>>“test.txt”回显(%%I
)
“我已经尝试了多个批处理脚本”--请回答您的问题并分享您的编码尝试。提示:查看;例如:for/F“usebackq tokens=2 delims=/=”%%I in(“file.txt”)do echo%%I
..@aschipfl是迄今为止我使用的最新/编辑到原始帖子的脚本。根据我的经验,bash regex在pandoc上很难尝试,我建议您不要尝试读取和写入同一个文件。如果出现问题,您可能会丢失内容。请查看我的答案,该答案是首先发布的,并且使用了与之前类似的方法您已经接受。在我看来,它更健壮,并考虑到您输入的文本文件内容中可能存在的键入错误。因此,我的理解是否正确,即“=”不能从文本文件中删除它?好的,这太好了,谢谢!我已经删除了所有我想删除的内容,现在只需要删除“=“。如果能够帮助处理该批处理代码?不客气!我的代码应该已经删除了=
,因为它们出现在第一批的前面”
。。。
@Echo Off
Set "InputFile=infile.txt"
Set "OutputFile=outfile.txt"
If Exist "%InputFile%" ((For /F UseBackQTokens^=2Delims^=^" %%A In (
"%InputFile%")Do Set /P "=%%A"<NUL&Echo()>"%OutputFile%")