本帖最后由 terse 于 2014-6-27 00:37 编辑
回复 30# 观心
可能测试文件不一
零能否检查文件夹下有不符文件吗
暂时加个判断
我这里运行环境 WIN7 小范围测试
测试文件大小 200KB左右 3000多行的文件成功处理- @if(0)==(0) echo off
- rem 目录路径自己更改
- set ph=f:\export
- cscript //nologo //E:JScript "%~f0" %ph%
- pause&exit
- @end;
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var re = /^(.*);[^\;]+$/gm;
- var str = '$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume' + '\r\n';
- var arr = ['$SKIPLINES 1' , '$SEPARATOR ,' , '$DEBUG 1' , '$BREAKONERR 1', '$AUTOADD 1'];
- var Folder=fso.GetFolder(WScript.Arguments.Count()?WScript.Arguments.Item(0):".");
- if (!fso.FolderExists(Folder+'/test/')) { fso.CreateFolder(Folder+'/test/')};
- for(var fc=new Enumerator(Folder.Files);!fc.atEnd();fc.moveNext()){
- var file =fc.item();
- var ext=/\.[^\.]+$/.exec(file);
- if (ext == '.txt') {
- var f = file.name.match(/(^[a-zA-Z]+)(([0-9]){6})\./);
- if (f) {
- var newfile = Folder + '/test/'+ f[2] + ext;
- var fs = file.OpenAsTextStream(1, -2);
- if(!fs.Atendofstream)
- {
- var text = str + fs.ReadAll().replace
- (re ,
- function(a,b) {
- return f[2] + "." + f[1] + "," + b.replace(/;/g,',')+ "\r\n";
- }
- ) + arr.join('\r\n');
- fso.createtextfile(newfile,true).Write(text);
- }
- fs.close();
- }
- }
- }
复制代码 再加个 判断行字符 排除类似最后行的
刚刚下载了样本 处理时间 1分多点
貌似有重复文件名 没处理直接覆盖- @if(0)==(0) echo off
- set t=%time%
- rem 目录路径自己更改
- set ph=f:\export
- if exist "%ph%\" (set ph="%ph%") else set ph=
- cscript //nologo //E:JScript "%~f0" %ph%
- echo %T% %time%
- pause&exit
- @end;
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var re = /^(.+);([^;]+$)/gm;
- var str = '$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume' + '\r\n';
- var arr = ['$SKIPLINES 1' , '$SEPARATOR ,' , '$DEBUG 1' , '$BREAKONERR 1', '$AUTOADD 1'];
- var Folder=fso.GetFolder(WScript.Arguments.Count()?WScript.Arguments.Item(0):".");
- if (!fso.FolderExists(Folder+'/test/')) { fso.CreateFolder(Folder+'/test/')};
- for(var fc=new Enumerator(Folder.Files);!fc.atEnd();fc.moveNext()){
- var file =fc.item();
- var ext=/\.[^\.]+$/.exec(file);
- if (ext == '.txt') {
- var f = file.name.match(/(^[a-zA-Z]+)((\d){6})\./);
- if (f) {
- var newfile = Folder + '/test/'+ f[2] + ext;
- var fs = file.OpenAsTextStream(1, -2);
- if(!fs.Atendofstream)
- {
- var t='';
- fs.ReadAll().replace(re,
- function(a,b) {
- t+= f[2] + '.' + f[1] + ',' + b + '\r\n';
- }
- )
- if (t) {
- var text = str + t.replace(/;/g,',') + arr.join('\r\n');
- fso.createtextfile(newfile,true).Write(text);
- }
- }
- fs.Close();
- }
- }
- }
复制代码
|