不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 获取当前目录里多个jpg图片文件的拍摄日期来重命名
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "current=%cd%"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
Add-Type -AssemblyName 'System.drawing';
$current=$env:current;
$files=@(dir -literal $current|?{(@(".jpg",".jpeg") -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});
$n=0;for($i=0;$i -lt $files.length;$i++){
$dt='';
$img=[System.Drawing.Image]::FromFile($files[$i].FullName);
foreach($it in $img.PropertyItems){
if($it.Id -eq 0x9003){
$dt=[System.Text.Encoding]::ASCII.GetString($it.Value) -replace '\x00$','';
break;
}
}
$img.Dispose();
if($dt -ne ''){
$n++;
$newname=($dt -split '\s+')[0].replace(':','')+'照片'+$n.ToString()+$files[$i].Extension;
$files[$i].Name+$c+$newname;
}
}