我正在处理一个批处理文件,因此我想删除一个换行符。 具体来说,我只想在某些情况下删除换行符。 我有一个以下格式的文本文件:

TOTAL, blah1, blah2, blah3
PART, blah1, blah2, blah3
PART, blah1, blah2, blah3
TOTAL, blah1, blah2, blah3
PART, blah1, blah2, blah3
TOTAL, blah1, blah2, blah3
PART, blah1, blah2, blah3
PART, blah1, blah2, blah3

我想要的输出是:

TOTAL, blah1, blah2, blah3 PART, blah1, blah2, blah3 PART, blah1, blah2, blah3
TOTAL, blah1, blah2, blah3 PART, blah1, blah2, blah3
TOTAL, blah1, blah2, blah3 PART, blah1, blah2, blah3 PART, blah1, blah2, blah3

总之,我希望所有“ PART”记录都与它们上方的“ TOTAL”记录显示在同一行中。 我可以在文本编辑器中使用查找/替换来实现此目的,方法是找到一个换行符,后跟字符串“ PART”,然后将其替换为空格字符。 我需要使用批处理文件来自动执行此过程,因为我将在其中运行约80个* .txt文件。 理想情况下,批处理文件应创建原始文件的重命名副本,而保留原始文件不变。

到目前为止,我设法找到的只是如何删除所有换行符。

提前致谢。

===============>>#1 票数:0 已采纳

@ECHO Off
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=c:\106x"
SET "destdir=U:\destdir"
FOR %%a IN (%sourcedir%\*.txt) DO (
(
 SET "line="
  FOR /f "tokens=1*" %%p IN (%%a) DO (
   IF "%%p"=="TOTAL," (
    IF DEFINED line ECHO !line:~1!  
    SET "line="
   )
   SET "line=!line! %%p %%q"
  )
  IF DEFINED line ECHO !line:~1!
 )
)>"%destdir%\%%~na.new" 
)

GOTO :EOF

您将需要更改sourcedirdestdir的设置以适合您的情况,并更改文件掩码*.txt以适合您的情况。

对于源目录中与*.txt匹配的每个文件,请阅读每一行。 如果该行以“ TOTAL”开始,则在该line输出所有累加的line并清除line ,然后将文本累加到line

目标文件名将在目标目录中,与原始名称( %~na .new )相同,扩展名为.new

  ask by user4907575 translate from so

未解决问题?本站智能推荐:

3回复

如何在批处理文件中查找和替换带通配符的字符串?

我是所有这一切的新手,所以请放轻松。 我正在尝试自动化一个更改特定服务端口的过程。 该端口在文件streamstack.exe.config中确定。 我有一些东西会找到并替换文件中的特定字符串,但在某些情况下我不知道定义的端口号。 是否可以找到包含通配符的字符串并替换为预定义的字符串?
2回复

批处理文件:替换文件文本中的字符串

在使用bat文件替换文件中的某些文本时,我需要一些帮助。 我有一个需要更改版本的模板: 我已经编写了下一个脚本,但无法理解如何在文本中更改此版本: 输出: 例如,如何将5.1.1000.0更改为7.1.1000.0? 其他所有文本保持不变,只有版本会更改。
3回复

使用批处理文件查找并用特殊字符替换字符串

因此,让此批处理文件正常工作时遇到了一些麻烦。 我尝试了几种不同的方法来查找和替换字符串。 问题:我们必须经常更新数据库,并且这样做会更改文件。 我必须改回一个文件才能正常工作。 这行: 更改为这一行: 并需要更改回具有IP地址的第一行。 我尝试使用查找和替换子
2回复

批处理:用循环替换文件和文件名中的字符串

我有一个文本文件,其名称为表单 text_j1.txt 该文件在多个位置包含多行,字符串j1 。 我想使用此文件作为输入,然后将“ j1 ”字符串的循环从1更改为500,因此我将获得500个名为text_1.txt文本文件到text_500.txt ,并且在每个文本文件中
2回复

批处理文件:如何搜索和替换内部带有“ =”的字符串

我必须从类似Pippo.K = 5的txt中搜索一个字符串,并将其替换为Pippo.K = 1。 我需要搜索整个字符串。 我所做的是: 但是我返回的是5=Pippo.K=1=5 我该如何解决此错误?
6回复

批处理文件:如何替换“=”(等号)和字符串变量?

除了SED,如何更换等号? 如何在字符串替换中使用字符串变量? 考虑这个例子: 两个问题: 首先,我不能在!:=!中使用变量%t%。 其次,我无法替换命令行中的等号
1回复

读取多个文本文件并使用批处理文件替换每个文本文件中的某种类型的字符串

我需要从目录中读取所有文本文件,然后在每个文本文件中都使用另一个(replacewith)替换某种类型的字符串(在具有“ volumelabel”的行中)。 以下是代码段: 现在我面临的问题是,它仅打印tobereplaced在新文件时,每行(直译) 用于并在以下情况下打印to
2回复

使用批处理脚本查找并替换多个文件中的字符串

我在一个文件夹中有3000个文件。 我想找到另一个文本并替换它。 我怎样才能做到这一点? 我是批处理脚本的新手。 我可以在1个文件中替换它,但我不知道如何替换多个文件。 如何编辑我的代码以替换所有文件中的字符串? 等待你的帮助。 谢谢
2回复

批处理文件将csv中的字符串替换为另一个文件中的列表

我需要借助另一个文件中的列表替换csv列中的数字。 我刚刚开始学习批处理,并找到了可以根据需要进行调整的脚本。 这是我使用的代码,首先要解决此问题,我只用了第三列,交换数字并将旧的和新的写入新文件: @echo off & setlocal enabledelayedexpan
1回复

通过批处理文件搜索并替换多个xml文件中的多个字符串

我有一些xml文件(大约100个,在子文件夹中),其ID需要更改。 因此,我有一个大约有1.100行的Excel列表,左列是旧的ID名称,右列是新的ID名称,它应该替换旧的ID名称。 我在Stackoverflow上找到了此脚本(并对其进行了一些更改): 这是原始链接: 批量替换