Оптимизация пакетного файла, который печатает 30 000 строк текста в файл - PullRequest
0 голосов
/ 25 ноября 2008

У меня есть пакетный файл, который делает это.

ECHO A41,35,0, a, 1,1, N, "Mr ZACHARY KAPLAN" >> test.txt

Есть около 30 тысяч похожих строк. Пакетный файл занимает около 5 часов.

Есть ли способ ускорить это?

/ Jeanre

Ответы [ 5 ]

3 голосов
/ 25 ноября 2008

Попробуйте это:

Поместите ECHO OFF вверху командного файла.

Затем измените каждую строку на:

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

и позвоните в ваш пакетный файл:

mybatch.bat >> test.txt

Отредактируйте первую строку, чтобы убрать эхо с распечатки.

2 голосов
/ 15 ноября 2011

Если вы сделаете это, это будет намного быстрее:

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

RUn
1 голос
/ 25 ноября 2008

Вы можете использовать язык сценариев, чтобы убрать ведущий 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 ) )

Я не проверял этот код ...

1 голос
/ 25 ноября 2008

Напишите собственный скрипт или программу, чтобы открыть файл test.txt один раз, и запишите все данные в него за один раз.

Прямо сейчас каждая строка выполняется интерпретатором команд отдельно, и файл каждый раз открывается и закрывается.

Даже небольшая программа на qbasic должна иметь возможность вырезать данные между echo и >> и записать их в текстовый файл быстрее, чем ваш текущий метод.

-Adam

0 голосов
/ 25 ноября 2008

Вот пример использования программы на 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...