优化批处理文件,将30,000行文本打印到文件中

时间:2008-11-25 07:30:08

标签: windows batch-file

我有一个批处理文件可以执行此操作。

ECHO A41,35,0,a,1,1,N,“ZACHARY KAPLAN先生”>> test.txt

大约有30k类似的线条。它需要批处理文件大约5个小时才能运行。

有没有办法加快速度?

/ Jeanre

5 个答案:

答案 0 :(得分:3)

试试这个:

ECHO OFF放在批处理文件的顶部。

然后将每一行改为:

ECHO A41,35,0,a,1,1,N,"Mr ZACHARY KAPLAN"

并调用批处理文件:

mybatch.bat>>的test.txt

编辑第一行以删除打印输出的回声。

答案 1 :(得分:2)

如果你这样做,它会更快:

JAM DO %%Fo CAt Pa (set /p %yodo%=jol)

RUn

答案 2 :(得分:1)

编写一个自定义脚本或程序,打开文件test.txt一次,然后一次性将所有数据写入其中。

现在每行都由命令解释器单独执行,每次都打开和关闭文件。

即使是一个小的qbasic程序也应该能够去掉echo和>>之间的数据。并将其写入文本文件比当前方法更快。

- 亚当

答案 3 :(得分:1)

您可以使用脚本语言去除前导ECHO和尾随>>带有小正则表达式的test.txt

这是python中的一个例子:

>>> import re
>>> text = 'ECHO A41,35,0,a,1,1,N,"Mr ZACHARY KAPLAN">> test.txt'
>>> re.sub( r"ECHO\s*(.*?)>>\s*test.txt", r"\1", text )
'A41,35,0,a,1,1,N,"Mr ZACHARY KAPLAN"'

对文件中的所有行执行此操作:

import re
f = open("input.bat")
of = open("output.txt", "w" )
for line in f:
    of.write( re.sub( r"ECHO\s*(.*?)>>\s*test.txt", r"\1", line ) )

我没有测试这段代码......

答案 4 :(得分:0)

以下是使用Java程序的示例 - 使用BufferedReader / PrintWriter

http://www.javafaq.nu/java-example-code-126.html

您还可以使用BufferedReader和BufferedWriter

http://java.sun.com/docs/books/tutorial/essential/io/buffers.html

http://leepoint.net/notes-java/io/10file/10readfile.html