|
|
发表于 2024-9-20 00:33:54
|
显示全部楼层
本帖最后由 aloha20200628 于 2024-9-20 12:22 编辑
回复 4# 228630386
看来假设 *.jpg 和 *.cr2 对应文件存在 ‘修改时间’ 的一致性是没戏了...
用 vbs/jscript/powershell/python 等脚本获取图片文件内置的 ‘拍摄时间’ 有多种方法,vbs/jscript 可以调用 Shell.Application 或 WIA.imageFile
7楼用 ExtendedProperty("System.Photo.DateTaken") 获取的属性值用 win8.1 实测要比资源管理器显示的图片文件拍摄时间差了8小时
改用 GetDetailsOf() 的 ‘date Taken’ 属性 或 WIA.imageFile 方法中的 ‘ExifDTOrig’ 属性值均无误差
以下代码存为 test.bat 运行,其中调用 WIA.imageFile 方法获取图片文件拍摄时间...
- @set @v=1 /* &echo off
- (for /f "delims=" %%i in ('dir /b/s/a-d *.jpg') do for %%p in (
- "CR2-1","CR2-2") do for /f "delims=" %%a in (
- 'dir /b/s "..\%%~p\%%~ni.cr2" ') do for /f "tokens=1-2 delims=;" %%x in (
- 'cscript /e:jscript "%~f0" "%%i" "%%a" ') do if "%%x"=="%%y" copy "..\%%~p\%%~ni.cr2" "%%~dpi" /y
- ) 2>nul
- pause&exit/b */
- v=WSH.arguments, img=WSH.createObject('WIA.imageFile'), s='';
- for (k=0; k<2; k++) {
- img.loadFile(v(k));
- if (img.properties.count<1 || !img.properties.exists('ExifDTOrig')) WSH.quit();
- s+=img.properties.item('ExifDTOrig').value+';'
- }
- WSH.echo(s), WSH.quit();
复制代码 |
|