我正在尝试创建一个大约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演出。该文件的另一个要求是将每个“记录”放在一个新行上。
就像我说的那样,当前的代码完成了我需要做的事情,我只是在寻找一种方法来加速它。
答案 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文件。