level 1
以下代码复制粘贴到记事本,另存为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分


