不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
/*&cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 查找并删除名称长度大于/超过指定字符数量的文件
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "maxlen=35"
dir /a-d-h/b/s|find /i /v "%~nx0"|cscript -nologo -e:jscript "%~f0" "%maxlen%"
echo;%#% +%$%%$%/%_% %z%
pause
exit
*/
var maxlen=Number(WSH.Arguments(0));
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var it=WSH.StdIn.ReadLine();
var base=fso.GetBaseName(it);
if(base.length > maxlen){WSH.StdErr.WriteLine(it);}
}