level 2
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行
/*
echo off&cls
rem 在当前目录下多个子文件夹里的pdf文件名称前面添加上几级文件夹的名称
mode con lines=3000
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
cd /d "%~dp0"
dir /a-d-h/b/s *.pdf|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%_% %z%
pause
exit
*/
var fso=new ActiveXObject('Scripting.FileSystemObject');
path=fso.GetFile(WSH.ScriptFullName).ParentFolder.Path;
while(!WSH.StdIn.AtEndOfStream){
var line=WSH.StdIn.ReadLine();
var prefix=line.substring(path.length+1).replace(/[^\\]+$/,'');
if(prefix != ''){
prefix=prefix.replace(/\\/g,'-');
var file=fso.GetFile(line);
var oldbase=fso.GetBaseName(file.Path);
var ext=fso.GetExtensionName(file.Path);
var newbase=prefix+oldbase;
var olen=oldbase.length,nlen=prefix.length;
if(olen > nlen){
if(oldbase.substring(0,nlen)==prefix){newbase='';}
}
if(newbase != ''){
var newname=newbase+(ext==''?'':'.'+ext);
WSH.StdErr.WriteLine(line+' --> '+newname);
}
}
}
2020年10月30日 08点10分



