[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[日期时间] 请问批处理如何把当前文件夹里所有文件,加上修改日期的前缀呢

我自己写了一个bat脚本,
但是运行脚本后,会丢掉修改日期的年和月,只有日,时,分。请问是哪里出的问题呢,谢谢!
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%F in (*) do (
  4.     rem 获取文件的最后修改日期和时间
  5.     for %%a in ("%%~tF") do (
  6.         set "datetime_str=%%~na"
  7.     )
  8.     rem 去掉日期和时间中的空格和冒号,只保留数字部分
  9.     set "formatted_datetime=!datetime_str: =!"
  10.     set "formatted_datetime=!formatted_datetime::=!"
  11.    
  12.     rem 重命名文件
  13.     ren "%%F" "!formatted_datetime!_%%F"
  14. )
  15. endlocal
复制代码

搞定了,谢谢大家。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%F in (*) do (
  4.     if "%%F" neq "%0" (
  5.         set "datetime_str=%%~tF"
  6.         rem 去掉日期和时间中的空格、冒号、斜线,只保留数字部分
  7.         set "formatted_datetime=!datetime_str: =!"
  8.         set "formatted_datetime=!formatted_datetime::=!"
  9.         set "formatted_datetime=!formatted_datetime:/=!"
  10.         ren "%%F" "!formatted_datetime!_%%F"
  11.     )
  12. )
复制代码

TOP

返回列表