Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何删除某些字符&;文本文件中的文本?_Batch File - Fatal编程技术网

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%")