求批处理:替换文件名中大写数字为小写?

第一集 高富帅多个.mp4
第二集 程度这地方规定.mp4
第三集 的话格瑞特.mp4
第四集 大方向很多.mp4
.................

改为:
第1集 高富帅多个.mp4
第2集 程度这地方规定.mp4
第3集 的话格瑞特.mp4
第4集 大方向很多.mp4
.................

复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行

@echo off
rem 将文件名中的中文小写数字改成阿拉伯数字
set #=Any question&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$% %z%
cd /d "%~dp0"
(echo;function cn2num^(n^){
echo;    var s=n;
echo;    s=s.replace^(/[〇零]/g,''^).replace^(/^^^(?=十^)/,'一'^);
echo;    s=s.replace^(/[一二三四五六七八九]/g,function^(a^){return '+'+'零一二三四五六七八九'.search^(a^)}^);
echo;    s=s.replace^(/^^^(\+^)^(.+^)^(?=亿^)/,'$1^($2^)'^).replace^(/^(\+^)^([^^\^(\^)]+^)^(?=万^)/,'$1^($2^)'^)
echo;    s=s.replace^(/[十百千万亿]/g,function^(a^){return '*'+^({'十':'10','百':'100','千':'1000','万':'10000','亿':'100000000'}[a]^)}^);
echo;    return ^(/^^[\d\+\*\^(\^)]$/.test^(s^)^)?n:eval^(0+s^);
echo;};
echo;while^(!WSH.StdIn.AtEndOfStream^){
echo;    var s=WSH.StdIn.ReadLine^(^);
echo;    s=s.replace^(/^(第^)^([〇零一二三四五六七八九十百千万亿]+^)^(集^)/,function^(a,b,c,d^){
echo;        return b+cn2num^(c^)+d;
echo;    }^);
echo;    WSH.echo^(s^);
echo;})>"%tmp%\j.j"
dir /a-d/b *.mp4|cscript -nologo -e:jscript "%tmp%\j.j"
:end
echo;%#% +%$%%$% %z%
pause

温馨提示:答案为网友推荐,仅供参考
相似回答