大神们,有没有办法批量重命名pdf子文件,我有多个不同名字的
bat吧
全部回复
仅看楼主
level 2
大神们,有没有办法批量重命名pdf子文件,我有多个不同名字的文件夹,而文件夹内包含多个不同名字的文件夹,然后第三层的都是pdf,我想把最里面的pdf文件重命名为第一个文件夹的名字+第二个文件夹的名字+第三层文件夹的名字,在这先谢谢大佬的指导。
2020年10月30日 03点10分 1
level 9
以下代码复制粘贴到记事本,另存为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分 4
这个代码只是帮我把第三个文件夹名字更改为0001-101,但是第三层文件夹内的pdf文件并没有改名
2020年10月31日 01点10分
@今天穿肚兜 按运行代码后窗口标题栏中的提示联系我
2020年10月31日 05点10分
@今天穿肚兜 哪里会修改文件夹名称呀?按运行代码后窗口标题栏中的提示.联.系.我
2020年10月31日 05点10分
@今天穿肚兜 哪里会修改文件夹名称呀
2020年10月31日 05点10分
1