用于创建大文本文件的批处理脚本

时间:2015-05-14 15:53:24

标签: batch-file batch-processing

我正在尝试创建一个大约4演出的文本文件。我使用批处理脚本完成了这个,但创建大约需要7个小时,所以我认为必须有更好的方法来完成它。这是我现在使用的代码:

echo "TOA5","CR6Series","CR6","790","CR6.Std.02.11","CPU:datatypes.CR6","26536","OneSec" > complete2.txt
echo "TIMESTAMP","RECORD","UnicodeSmpl","FP2Smpl","IEEE4Smpl","UINT2Smpl","LongSmpl","StringSmpl","BooleanSmpl","Bool8Smpl_1(1)","Bool8Smpl_1(2)","Bool8Smpl_1(3)","Bool8Smpl_1(4)","Bool8Smpl_1(5)","Bool8Smpl_1(6)","Bool8Smpl_1(7)","Bool8Smpl_1(8)","Bool8Smpl_2(1)","Bool8Smpl_2(2)","Bool8Smpl_2(3)","Bool8Smpl_2(4)","Bool8Smpl_2(5)","Bool8Smpl_2(6)","Bool8Smpl_2(7)","Bool8Smpl_2(8)","NsecSmpl" >> complete2.txt
echo "TS","RN","","","","","","","","","","","","","","","","","","","","","","","","" >> complete2.txt
echo "","","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp" >> complete2.txt
for /L %%i in (0,1,23616999) do echo "2015-05-13 12:11:53",%%i,"大 不束 ロガー 233",-6388,-2.395906E+034,52338,-1715056512,"Test string",0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,"2015-05-13 12:11:53.078" >> complete2.txt

需要前4行作为文件的标题。然后for循环用于递增文件中的“记录”号,并且还为文件填充足够的数据以使其成为4演出。该文件的另一个要求是将每个“记录”放在一个新行上。

就像我说的那样,当前的代码完成了我需要做的事情,我只是在寻找一种方法来加速它。

3 个答案:

答案 0 :(得分:1)

对于23616999次迭代,它不会打开,追加,关闭,打开,追加,关闭,打开,追加,关闭等,如果您打开文件一次,它会大大提高效率,执行整个循环打开文件的序列,然后在完成后关闭它。这样改变你的语法:

rem;
@cls
@echo off
setlocal

for /f "tokens=4" %%I in ('chcp') do set "chcp=%%I"
chcp 65001 >NUL

>complete2.txt (
    echo "TOA5","CR6Series","CR6","790","CR6.Std.02.11","CPU:datatypes.CR6","26536","OneSec"
    echo "TIMESTAMP","RECORD","UnicodeSmpl","FP2Smpl","IEEE4Smpl","UINT2Smpl","LongSmpl","StringSmpl","BooleanSmpl","Bool8Smpl_1(1)","Bool8Smpl_1(2)","Bool8Smpl_1(3)","Bool8Smpl_1(4)","Bool8Smpl_1(5)","Bool8Smpl_1(6)","Bool8Smpl_1(7)","Bool8Smpl_1(8)","Bool8Smpl_2(1)","Bool8Smpl_2(2)","Bool8Smpl_2(3)","Bool8Smpl_2(4)","Bool8Smpl_2(5)","Bool8Smpl_2(6)","Bool8Smpl_2(7)","Bool8Smpl_2(8)","NsecSmpl"
    echo "TS","RN","","","","","","","","","","","","","","","","","","","","","","","",""
    echo "","","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp"
    for /L %%i in (0,1,23616999) do echo "2015-05-13 12:11:53",%%i,"大 不束 ロガー 233",-6388,-2.395906E+034,52338,-1715056512,"Test string",0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,"2015-05-13 12:11:53.078"
)

chcp %chcp% >NUL

答案 1 :(得分:0)

您是否考虑过使用具有FileSystemObject对象的VBScript?

答案 2 :(得分:0)

使用指数幂

echo "TOA5","CR6Series","CR6","790","CR6.Std.02.11","CPU:datatypes.CR6","26536","OneSec" > complete1.txt
echo "TIMESTAMP","RECORD","UnicodeSmpl","FP2Smpl","IEEE4Smpl","UINT2Smpl","LongSmpl","StringSmpl","BooleanSmpl","Bool8Smpl_1(1)","Bool8Smpl_1(2)","Bool8Smpl_1(3)","Bool8Smpl_1(4)","Bool8Smpl_1(5)","Bool8Smpl_1(6)","Bool8Smpl_1(7)","Bool8Smpl_1(8)","Bool8Smpl_2(1)","Bool8Smpl_2(2)","Bool8Smpl_2(3)","Bool8Smpl_2(4)","Bool8Smpl_2(5)","Bool8Smpl_2(6)","Bool8Smpl_2(7)","Bool8Smpl_2(8)","NsecSmpl" >> complete1.txt
echo "TS","RN","","","","","","","","","","","","","","","","","","","","","","","","" >> complete1.txt
echo "","","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp","Smp" >> complete1.txt
echo "2015-05-13 12:11:53",%%i,"大 不束 ロガー 233",-6388,-2.395906E+034,52338,-1715056512,"Test string",0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,"2015-05-13 12:11:53.078" > complete2.txt
for /L %%i in (0,1,25) do type complete2.txt >> complete2.txt
type complete2.txt >> complete1.txt

这将标题放在complete1.txt中,然后将一条记录放入complete2.txt,然后将complete2.txt文件的大小加倍25次,最后将complete2.txt附加到complete1.txt。

在几分钟内生成一个4 gig文件。

相关问题