怎么用批处理修改文件名字? 10
怎么用批处理修改50个文件名字,文件名字最后的数字可以递增比如我现在的文件名如下137-589874455-140828-140828-1596702609-00001-...
怎么用批处理修改50个文件名字,文件名字最后的数字可以递增
比如我现在的文件名如下
137-589874455-140828-140828-1596702609-00001 - 副本
137-589874455-140828-140828-1596702609-00001 - 副本(2)
137-589874455-140828-140828-1596702609-00001 - 副本(3)
137-589874455-140828-140828-1596702609-00001 - 副本(4)
我想修改文件名,最后的数字00001递增,后面的-副本都去掉
最好我可以指定按照其中哪个数段来递增。 展开
比如我现在的文件名如下
137-589874455-140828-140828-1596702609-00001 - 副本
137-589874455-140828-140828-1596702609-00001 - 副本(2)
137-589874455-140828-140828-1596702609-00001 - 副本(3)
137-589874455-140828-140828-1596702609-00001 - 副本(4)
我想修改文件名,最后的数字00001递增,后面的-副本都去掉
最好我可以指定按照其中哪个数段来递增。 展开
2个回答
展开全部
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
/*&cls
@echo off
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
*/
var start=1,len=5;
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var line=WSH.StdIn.ReadLine();
var f=fso.GetFile(line);
var oldbase=fso.GetBaseName(f.Path).replace(/ - 副本(\s*[(\(]\d+[\))])?$/,'');
var ext=fso.GetExtensionName(f.Path);
var newbase=oldbase.replace(/\d+$/,'');
if(oldbase !=newbase){
t=Math.pow(10,len)+start;
var newname=newbase+t.toString().substring(1)+(ext==''?'':'.'+ext);
WSH.StdErr.WriteLine(line+' --> '+newname);
start+=1;
};
}
/*&cls
@echo off
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
*/
var start=1,len=5;
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var line=WSH.StdIn.ReadLine();
var f=fso.GetFile(line);
var oldbase=fso.GetBaseName(f.Path).replace(/ - 副本(\s*[(\(]\d+[\))])?$/,'');
var ext=fso.GetExtensionName(f.Path);
var newbase=oldbase.replace(/\d+$/,'');
if(oldbase !=newbase){
t=Math.pow(10,len)+start;
var newname=newbase+t.toString().substring(1)+(ext==''?'':'.'+ext);
WSH.StdErr.WriteLine(line+' --> '+newname);
start+=1;
};
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询