0

我想在批处理脚本中使用 vbscript 或 windows cmd.exe 命令行。

我的目标是这个。

当找到文本文件中的特定字符时,即“ST”,它将保存所有从“ST”开始的文本,包括当它看到字符“ST”时,直到它找到下一个ST实例。如果它看到“ST”的下一个实例,那么它应该将文件中的字符从“ST”的第一个实例与所有数据分开,直到下一个“ST”,当然它不需要写第一个文件中实际字符“ST”的第二个实例。如果它没有看到“ST”的另一个实例,那么它只会按原样复制文件并将其命名,例如 new1.txt。如果它找到多个 ST 实例,则每个文件都应称为 new1.txt、new2.txt、new3.txt、new4.txt 等等。

前任。假设您有一个名为 output.txt 的文本文件,它包含以下内容。

ST 123 Abcrfg 78
ST !! 143 Bng 678 

然后我想使用windows命令行的vbscript读取名为output.txt的文件并执行以下操作...

编写一个包含数据的名为 new1.txt 的文件:

ST 123 Abcrfg 78

然后我想查看另一个名为 new2.txt 的文件,其中包含..

ST !! 143 Bng 678 

对此的任何帮助将不胜感激。

谢谢你。

4

1 回答 1

0

一个简单的方法可能如下所示:

Set fso = CreateObject("Scripting.FileSystemObject")

data = Split(fso.OpenTextFile("output.txt").ReadAll, "ST")
For i = 1 To UBound(data)
  fso.OpenTextFile("new" & i & ".txt", 2, True).Write "ST" & data(i)
Next

这将读取整个输入文件,在每次出现“ST”时拆分文本并将每个片段写入单独的文件。第一个片段(“ST”第一次出现之前的文本)将被忽略。

请注意,这仅适用于小文件(即可以轻松放入计算机 RAM 的文件。对于较大的文件,您必须解析文件。

于 2013-09-06T13:17:16.663 回答