求问,关于【BAT】中文数字to阿拉伯数字转换
bat吧
全部回复
仅看楼主
level 1
硎石_ 楼主
参考链接https://blog.csdn.net/qq_33957603/article/details/79684204
问题是运行了没用
求解答
2019年11月27日 14点11分 1
level 9
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
/*&cls&echo off
rem rem 将文件名中的中文小写数字修改/转换成阿拉伯数字
mode con lines=3000
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
cd /d "%~dp0"
dir /a-d/b|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%_% %z%
pause
exit
*/
function cn2num(n){
var s=n;
s=s.replace(/[〇零]/g,'').replace(/^(?=十)/,'一');
s=s.replace(/[一二三四五六七八九]/g,function(a){return '+'+'零一二三四五六七八九'.search(a)});
s=s.replace(/^(\+)(.+)(?=亿)/,'$1($2)').replace(/(\+)([^\(\)]+)(?=万)/,'$1($2)')
s=s.replace(/[十百千万亿]/g,function(a){return '*'+({'十':'10','百':'100','千':'1000','万':'10000','亿':'100000000'}[a])});
s=s.replace(/^\+/,'0+').replace(/^\*/,'1*');
return (/^[\d\+\*\(\)]$/.test(s))?n:eval(0+s);
};
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var it=WSH.StdIn.ReadLine();
var file=fso.GetFile(it);
var newname=file.Name.replace(/[〇零一二三四五六七八九十百千万亿]+/,function(z){return cn2num(z);});
if(file.Name != newname){WSH.StdErr.WriteLine(it+' --> '+newname);}
}
WSH.Quit();
2021年05月17日 13点05分 5
level 1
显示转化正确,但是下图文件一个都没有转化
2023年09月21日 08点09分 6
level 1
我也是这个样子
2023年09月21日 08点09分 7
1