我有一个批处理文件可以执行此操作。
ECHO A41,35,0,a,1,1,N,“ZACHARY KAPLAN先生”>> test.txt
大约有30k类似的线条。它需要批处理文件大约5个小时才能运行。
有没有办法加快速度?
/ Jeanre
答案 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