You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重命名JPG图片文件,在文件名日期时间部分插入短横线与点?

解决Windows CMD批量重命名文件的问题

你要把文件名里的日期格式从YYYYMMDD_HHMMSS改成YYYY-MM-DD_HH.MM.SS,但原来用的ren ????????_??????-*.* ????-??-??_??.??.??-*.*命令无效——因为CMD的rename通配符只能替换对应位置的单个字符,没法插入新的分隔符(-和.),它做不了这种结构重组的重命名操作。

下面给你两个可行的解决方法:

方法一:用CMD的for循环处理

在CMD命令行里直接执行这段命令(如果要写成批处理文件,把所有%改成%%):

for %f in (20??????_??????-*.jpg) do (
    set "fname=%~nf"
    set "date_raw=%fname:~0,8%"
    set "time_raw=%fname:~9,6%"
    set "suffix=%fname:~16%"
    setlocal enabledelayedexpansion
    set "new_date=!date_raw:~0,4!-!date_raw:~4,2!-!date_raw:~6,2!"
    set "new_time=!time_raw:~0,2!.!time_raw:~2,2!.!time_raw:~4,2!"
    ren "%f" "!new_date!_!new_time!!suffix!!~xf"
    endlocal
)

操作逻辑:

  1. 遍历所有符合20??????_??????-*.jpg格式的目标文件
  2. 拆分出文件名里的原始日期、时间和后缀部分
  3. 通过字符串截取把日期转成YYYY-MM-DD格式,时间转成HH.MM.SS格式
  4. 拼接成新文件名后完成重命名

方法二:用PowerShell更简洁

如果你的系统可以打开PowerShell,这个写法更直观高效:

Get-ChildItem "20??????_??????-*.jpg" | Rename-Item -NewName {
    $baseParts = $_.BaseName -split '-'
    $dtParts = $baseParts[0] -split '_'
    $formattedDt = "$($dtParts[0].Substring(0,4))-$($dtParts[0].Substring(4,2))-$($dtParts[0].Substring(6,2))_$($dtParts[1].Substring(0,2)).$($dtParts[1].Substring(2,2)).$($dtParts[1].Substring(4,2))"
    "$formattedDt-$($baseParts[1])$($_.Extension)"
}

操作逻辑:

  1. 获取所有目标文件后,拆分文件名的各个组成部分
  2. 对日期时间子串进行格式化重组
  3. 拼接成新文件名完成重命名

内容的提问来源于stack exchange,提问作者Sybren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:00:59