如何以视频或者照片文件的创建媒体日期+原文件名重命名?

请问如何以视频或者照片文件的创建媒体日期+原文件名重命名,因为手机文件复制到移动硬盘上,创建日期就是移到硬盘的时间,需要媒体自身那个创建媒体日期来重命名。搜到一个创建日期命名的,请问如何修改一下?谢谢。
@echo off
attrib +s "%~f0"
for /r %%a in (*) do (
for /f "skip=1 tokens=1-3 delims=-/ " %%b in ('dir /tc "%%a"^|findstr ":"') do (
ren "%%a" "%%b%%c%%d+%%~nxa"
)
)
pause

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
---------------------------------------------------
/*&cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 对当前目录里的mp4视频文件和jpg图片文件名称开头前面分别添加创建媒体日期和拍摄日期
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
dir /a-d-h/b *.mp4 *.jpg|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%_% %z%
pause
exit
*/
var sa=new ActiveXObject('Shell.Application');
var fso=new ActiveXObject('Scripting.FileSystemObject');

var tmpfolder=sa.NameSpace(0);
var num=[0,0];
for(var i=0;i<=400;i++){
if(tmpfolder.GetDetailsOf(null, i) == '创建媒体日期'){
num[0]=i;
}else{
if(tmpfolder.GetDetailsOf(null, i) == '拍摄日期'){num[1]=i;}
}
}

function addzero(z){return Number(z)<10?'0'+z.toString():z.toString();}
while(!WSH.StdIn.AtEndOfStream){
var it=WSH.StdIn.ReadLine();
var file=fso.GetFile(it);
var objfolder=sa.NameSpace(file.ParentFolder.Path);
var objitem=objfolder.ParseName(file.Name);
var d='', m=null;
for(var i=0;i<num.length;i++){
var val=objfolder.GetDetailsOf(objitem, num[i]);
m=val.match(/^\D*(\d+)\D+(\d+)\D+(\d+)/);
if(m){d=m[1]+addzero(m[2])+addzero(m[3]);break;}
}
if(d != ''){WSH.StdErr.WriteLine(it+' --> '+d+'+'+file.Name);}
}
WSH.Quit();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-27
以视频或者文件照片的形式创建媒体日期,原文件名重新命名,直接点击右击,就可以重新命名。
相似回答