找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 34522|回复: 14

[文本处理] [已解决]文件名添加最后修改时间

[复制链接]
发表于 2013-1-6 21:10:43 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-6-14 17:34 编辑

谁用 批处理   处理过  *.JPG   
修改时间精确到秒.jpg (2013-09-06-095206.jpg)


求教ing
发表于 2013-1-6 21:15:59 | 显示全部楼层
您来自未来?
 楼主| 发表于 2013-1-6 21:17:48 | 显示全部楼层
回复 2# Demon


    其实我思想前卫  举了个  未来的 例子 哈哈哈
发表于 2013-1-6 21:33:40 | 显示全部楼层
精确到分倒是很好办
精确到秒就要第三方命令行工具的支持了
顺便问一句,那个时间是文件的什么时间?文件的创建时间?修改时间?exif记录中的拍摄时间?
 楼主| 发表于 2013-1-6 21:39:17 | 显示全部楼层
回复 4# namejm


   哈哈  namejm   ,  还在玩批处理?  以前 在DOS联盟里 起来的  好像??


是 修改时间,   相对创建时间 来的准一点  
 楼主| 发表于 2013-1-6 21:45:09 | 显示全部楼层
回复 4# namejm


    精确到  分也成,
大不了 后面   +  12345789
 楼主| 发表于 2013-1-6 22:02:06 | 显示全部楼层
回复 4# namejm


    用 wmic datafile                  的lastModifled
发表于 2013-1-6 22:54:27 | 显示全部楼层
啊呀我的妈呀,连我的老底都摸得那么清楚,长得帅我容易吗我^_^

wmic没怎么玩过,还是给段纯批的代码吧

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1,2,3*" %%i in ('dir /a-d *.jpg ^|findstr /b "20[0-9][0-9]-"') do (
  4.         set _time=%%j
  5.         set _time=!_time::=!
  6.         echo ren "%%l" "%%i-!_time!.jpg"
  7. )
  8. pause
复制代码
这个代码不会真正修改文件名,如果效果是你想要的,把 echo ren... 语句前的 echo 去掉,重新执行就会真正修改文件名了
  使用这个代码有很多限制:
  1、dir的结果中,每行的文件信息显示为 "日期 时间 字节大小 文件名" 的格式,其中,日期时间的格式和系统的区域设置有关;
  2、文件名中不能含有半角的感叹号
  3、最后修改日期必须是2000年及其之后的

评分

参与人数 1技术 +1 收起 理由
fire999999999 + 1 哈哈,牛人

查看全部评分

发表于 2013-1-6 23:21:53 | 显示全部楼层
文件后缀及路径自己改
显示正常后去掉 ECHO(提示:请先备份)
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 tokens=1*" %%i in ('wmic datafile where "drive='f:' and path='\\jpg\\' and Extension='jpg'" get name^,LastModified') do (
  3.     set "Tm=%%~ni"
  4.     for /f "tokens=*" %%x in ("%%j") do ECHO ren "%%~fx" "!Tm:~,4!-!Tm:~4,2!-!Tm:~6,2!-!Tm:~8,2!-!Tm:~10,2!-!Tm:~12,2!%%~xx"
  5. )
  6. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
fire999999999 + 1 感谢兄弟

查看全部评分

发表于 2013-1-7 00:03:05 | 显示全部楼层
我也来一个
  1. @echo off
  2. set "P=%~p0"
  3. set "P=%P:\=\\%"
  4. set "wmic=wmic datafile where"
  5. for /f "tokens=1*" %%a in ('%wmic% "drive='%~d0' and path='%P%' and extension='jpg'" get LastModified^,name^|find ""') do (
  6.   set "d=%%a"
  7.   for /f "tokens=*" %%c in ("%%b") do set "File=%%~nxc"
  8.   setlocal enabledelayedexpansion
  9.   set "d=!d:~,4!-!d:~4,2!-!d:~6,2!-!d:~8,6!"
  10.   ren "!File!" "!d!.jpg"
  11.   endlocal
  12. )
  13. pause
复制代码
vbs 权当练习:
  1. set fso = createobject("scripting.filesystemobject")
  2. for each file in fso.getfolder(".").files
  3.    ext = fso.getextensionname(file)
  4.    if lcase(ext) = "jpg" then
  5.       d = file.datelastmodified
  6.       d = right(year(d),4)&"-"&right("0"&month(d),2)&"-"&_
  7.       right("0"&day(d),2)&"-"&right("0"&hour(d),2)&_
  8.       right("0"&minute(d),2)&right("0"&second(d),2)
  9.       if lcase(file.name) <> d & ".jpg" then file.name = d & ".jpg"
  10.    end if
  11. next
  12. msgbox "OK"
复制代码
发表于 2013-1-7 08:14:02 | 显示全部楼层
目测上面两段代码没修正时区
 楼主| 发表于 2013-1-7 09:11:52 | 显示全部楼层
回复 10# apang


    哈哈,高手只要不搞手,总是在的  不过只能加一次分了 明天再加
 楼主| 发表于 2013-1-7 20:18:13 | 显示全部楼层
回复 10# apang


    不过 不知道有没有办法 获取 拍照日期
发表于 2013-1-7 21:08:36 | 显示全部楼层
用 jhead.exe 就很简单了

  1. jhead -n%Y-%m-%d-%H%M%S *.jpg
复制代码
只需要一条命令就可以把所有的jpg文件按日期时间重命名
jhead的官方网站在这里
http://www.sentex.net/~mwandel/jhead/
论坛里提到的底版本有bug,用官方的最新版吧
发表于 2013-1-8 11:01:37 | 显示全部楼层
回复  apang


    不过 不知道有没有办法 获取 拍照日期
fire999999999 发表于 2013-1-7 20:18


办法也不是没有 不过你是否就确认全部图片含EXIF吗 有点也没有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 01:18 , Processed in 0.023938 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表