VBScript - 如何在指定的行后追加新行

时间:2012-04-08 16:04:02

标签: text vbscript append

我需要通过在现有文件中添加新行来编辑某些配置文件,但不是在文件的末尾,而是在中间某处(在特定部分的末尾)

# section 1 description
foo1 = bar1
foo2 = bar2

# section 2 description
foo3 = c:\bar.cfg
my_new_line = which_needs_to_be_appended_here

# section 3 description
foo4 = bar4

我应该像这里描述的那样使用搜索和替换:

http://blogs.technet.com/b/heyscriptingguy/archive/2005/02/08/how-can-i-find-and-replace-text-in-a-text-file.aspx

查找特定部分的最后一行并将其替换为:本身+新行字符+ my_new_line = which_needs_to_be_appended?

OR

也许有更简单或更聪明的方法来做同样的事情(比如找到特定部分的最后一行并使用某种方法将我的新行放在它之后)?

1 个答案:

答案 0 :(得分:2)

由于您的任务是在一个部分附加一行,并且您的数据似乎表明部分由两个行结尾分隔,因此在该分隔符上使用Split()看起来像一个不依赖于知道最后一个的好策略该部分的键值对:

  Dim sAll : sAll = readAllFromFile("..\data\cfg00.txt")
  WScript.Echo sAll
  Dim aSects : aSects = Split(sAll, vbCrLf & vbCrLf)
  aSects(1) = aSects(1) & vbCrLf & "fooA = added"
  sAll = Join(aSects, vbCrLf & vbCrLf)
  WScript.Echo "-----------------------"
  WScript.Echo sAll

输出:

=========================
# section 1 description
foo1 = bar1
foo2 = bar2

# section 2 description
foo3 = c:\bar.cfg

# section 3 description
foo4 = bar4

-----------------------
# section 1 description
foo1 = bar1
foo2 = bar2

# section 2 description
foo3 = c:\bar.cfg
fooA = added

# section 3 description
foo4 = bar4

=========================