用于编辑文本文件的批处理脚本

时间:2012-07-23 23:33:51

标签: text batch-file editor

我们有一个由数据库转储填充的txt文件,但有CRLF个中断,我们不想要。基本上,我正在尝试修改C:\app.txt,删除所有CRLF,然后在!@#前添加"_TEXT_",并添加{在CR前面{1}}。这样,我在我想要的地方只有"!@#_TEXT_",而不是到处都是。

我尝试过使用Bruce Gunthrie的change.exe,它在32位环境下运行良好,但在64位PC上无效。

非常感谢任何帮助。

我在这里看到了一些类似的帖子,但是因为它们太复杂而无法阅读这些代码,所以我不知道如何使它们适应我们的环境。

由于

例如

CR

应阅读:

_TEXT_ data data1
data2 data3 data4
_TEXT_ data data1
data2 data3 data4

1 个答案:

答案 0 :(得分:1)

PowerShell是一种选择吗? (我猜是这样的,安装了当前Windows版本的64位计算机 PowerShell。)

$(
  $line = ''
  switch -wildcard -File C:\app.txt {
    '_TEXT_*' {
      if ($line) { $line }
      $line = "!@#$_"
    }
    default {
      $line += ' ' + $_
    }
  }
  if ($line) { $line }
) -join "`r"

如您所愿,这将与CR一起加入行。将结果传递给Set-Content以将其写入文件。