(标题太粗长是不是很不友好?)
^_^举个栗子^_^:
我有以下文本数据:
12||我是中国人||56||78||20150607
13||我是俄罗斯人||56||76||20190607
14||我是安徽人||56||76||20190607
15||我是悉尼人||56||76||20190607
通过批处理后,我希望去掉“||”,得到如下效果(相当于对文本数据进行了一次整形,然后输出到log文件中,每一列分隔符可以是空格,也可以是tab。整完形之后显得很规整的样子,每一列都是以最长的那个字段再输出个指定的字符。):
12 我是中国人 56 78 20150607
13 我是俄罗斯人 56 76 20190607
14 我是安徽人 56 76 20190607
15 我是悉尼人 56 76 20190607
输出后的数据是否显得十分的规整,辣么你可以这么做:
@if (0)==(0) echo off
cscript //nologo //e:jscript "%~f0" < a.txt
pause & exit
@end
var i = 0, arr = [], max = [];
var reg = /[^\x00-\xff]/g;
while(!WSH.StdIn.AtEndOfStream){
var strLine = WSH.StdIn.ReadLine();
if(!/^\s*$/.test(strLine)) {
arr[i] = strLine.split('||');
for(var j=0; j
var len = arr[i][j].replace(reg, '..').length;
if(!max[j] || len > max[j]) max[j] = len;
}
i++;
}
}
for(var i=0; i
var s = '';
for(var j=0; j
var len = max[j] - arr[i][j].replace(reg, '..').length;
var space = ' ';
for (var k=0; k
s += arr[i][j] + space;
}
WScript.Echo(s);
}
把上述代码放到.bat文件中,执行就OK了。
至于代码啥意思,怎么修改,我相信你懂的。
^_^我的公众号: