求助一个简单的小代码
bat吧
全部回复
仅看楼主
level 1
Hk_枫雪 楼主
1.txt里的内容是
xxx:45646
日期:18.9或者2018.9或者18年9月或者2018年9月
价格:120
qqq:45648
数量:300
eee:330
目的是提取日期: 价格: 数量: 后面的内容 然后自动创建文件 如下(需要自动更正日期的格式变成xx年x月,如果难实现的话 就算了 直接提取日期内容就行了)
18年9月 120 300
2018年09月06日 11点09分 1
level 1
Hk_枫雪 楼主
@John▫Aº 求助大佬
2018年09月06日 11点09分 2
level 1
Hk_枫雪 楼主
1.txt里的内容是
xxx:45646
日期:18.9或者2018.9或者18年9月或者2018年9月
价格:120
qqq:45648
数量:300
eee:330
目的是提取日期: 价格: 数量: 按照后面的内容自动创建文件夹 如下(需要自动更正日期的格式变成xx年x月,如果难实现的话 就算了 直接提取日期内容就行了)
18年9月 120 300
2018年09月06日 12点09分 3
level 9
不清楚你的实际文件,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI
/*&cls
@璐村惂鐢ㄦ埛_000076K馃惥 off
rem 查找txt文本文件内以指定字符串/关键字开头的行,并提取该行中指定字符后面的内容
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@璐村惂鐢ㄦ埛_053Q95e馃惥 %z%
set "input=1.txt"
cd /d "%~dp0"
type "%input%"|cscript -nologo -e:jscript "%~f0"
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var text=WSH.StdIn.ReadAll().replace(/^\s*|\s*$/g,'').split(/[\r\n]+/);
s=['','',''];
for(var i=0;i<text.length;i++){
var line=text[i].replace(/^\s*|\s*$/g,'');
var m1=line.match(/日\s*?期\s*[::]\s*(.+)/);
if(m1){
s[0]=m1[1];
var m=m1[1].match(/(\d+)\.(\d+)/);
if(m){s[0]=m[1]+'年'+m[2]+'月';}
}
var m2=line.match(/价\s*?格\s*[::]\s*(.+)/);
if(m2){s[1]=m2[1];}
var m3=line.match(/数\s*?量\s*[::]\s*(.+)/);
if(m3){s[2]=m3[1];}
}
WSH.echo(s.join(' '));
2020年01月11日 06点01分 6
1