You need to enable JavaScript to run this app. 如何将文件修改日期时间戳添加到文件名并实现批量重命名?
优惠活动
大模型
产品
解决方案
定价
更多

如何将文件修改日期时间戳添加到文件名并实现批量重命名?

批量为文件夹内文件追加修改时间戳的重命名方法

匹配需求规则

  • 操作范围:仅处理当前目标文件夹下的文件,不递归改动子文件夹内的内容
  • 命名规则:保留原文件主名、原文件扩展名,在主名和扩展名之间插入对应文件的最后修改时间戳
  • 时间戳格式:按2位日、2位月、4位年、2位时、2位分的顺序连续拼接

    对应示例:原文件James.txt,修改时间为2020年3月19日11:11
    重命名后效果:James_190320201111.txt
    (注:原需求示例省略了文件后缀,实际操作必须保留原扩展名,否则会导致文件无法被系统识别打开)

各系统可直接复用的操作命令

Windows 系统(PowerShell 环境)

打开目标文件夹,在文件夹地址栏直接输入powershell回车,即可打开路径匹配的PowerShell操作窗口:

  1. 先跑预览命令确认重命名效果,避免误操作:
    Get-ChildItem -File | Rename-Item -NewName { $_.BaseName + "_" + $_.LastWriteTime.ToString("ddMMyyyyHHmm") + $_.Extension } -WhatIf
    
  2. 预览结果完全符合预期后,去掉命令末尾的-WhatIf参数,执行正式重命名:
    Get-ChildItem -File | Rename-Item -NewName { $_.BaseName + "_" + $_.LastWriteTime.ToString("ddMMyyyyHHmm") + $_.Extension }
    

macOS / Linux 系统(Bash 环境)

打开终端,切换到需要批量处理的目标文件夹路径,直接执行以下命令即可:

find . -maxdepth 1 -type f -exec sh -c '
  for file; do
    # 跳过已经加过时间戳的文件,避免重复处理
    [[ "$(basename "$file")" =~ _[0-9]{12}\. ]] && continue
    filename=$(basename "$file")
    main_name="${filename%.*}"
    file_ext="${filename##*.}"
    # 自动兼容macOS、Linux系统的stat命令参数差异
    mod_time=$(stat -f "%d%m%Y%H%M" "$file" 2>/dev/null || stat -c "%d%m%Y%H%M" "$file")
    mv -n "$file" "${main_name}_${mod_time}.${file_ext}"
  done
' sh {} +

命令自带两层安全逻辑:一是跳过已加时间戳的文件,重复执行也不会叠加多余后缀;二是启用mv -n参数,遇到同名文件不会强制覆盖,避免数据丢失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 07:24:03