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

[文件操作] [分享]批处理重命名文件添加当前日期作为前缀

[复制链接]
发表于 2022-5-12 14:55:01 | 显示全部楼层 |阅读模式
【问题描述】
我有很多文件,我想把文件名改了,文件名前面加文件的修改时间,我想改成文件名前面加:比如今天的日期,   2022.05.12-
 楼主| 发表于 2022-5-12 14:55:16 | 显示全部楼层
【解决方案】
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('powershell -c "Get-Date -UFormat '%%Y.%%m.%%d'"') do (
  4.     set "SysTS=%%i"
  5. )
  6. REM 假设需要重命名的是当前目录下的txt文件
  7. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  8.     ren "%%i" "%SysTS%-%%i"
  9. )
复制代码
 楼主| 发表于 2022-5-12 17:15:59 | 显示全部楼层
问:把各种文件的文件名前加前缀
答:
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('powershell -c "Get-Date -UFormat '%%Y.%%m.%%d'"') do (
  4.     set "SysTS=%%i"
  5. )
  6. for /f "delims=" %%i in ('dir /b /a-d ^| findstr /v /x "%~nx0"') do (
  7.     ren "%%i" "%SysTS%-%%i"
  8. )
复制代码
 楼主| 发表于 2022-5-12 17:47:39 | 显示全部楼层
问:显示的是今天的日期 不是文件最后的修改日期
答:
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d ^| findstr /v /x "%~nx0"') do (
  5.     for /f %%j in ('dir "%%i" 2^>nul ^| findstr /c:"%%i"') do (
  6.         set "FileDate=%%j"
  7.         set "FileDate=!FileDate:/=.!"
  8.         ren "%%i" "!FileDate!-%%i"
  9.     )
  10. )
复制代码
 楼主| 发表于 2022-5-12 18:19:36 | 显示全部楼层
问:可以了 能再改一下把文件夹里面所有子文件夹内的文件都可被处理吗
答:
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /s /a-d ^| findstr /v /i /l "%~f0"') do (
  5.     for /f %%j in ('dir "%%i" 2^>nul ^| findstr /c:"%%~nxi"') do (
  6.         set "FileDate=%%j"
  7.         set "FileDate=!FileDate:/=.!"
  8.         ren "%%i" "!FileDate!-%%~nxi"
  9.     )
  10. )
复制代码
 楼主| 发表于 2022-5-12 21:57:59 | 显示全部楼层
问:中文目录下执行失败
答:
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /s /a-d ^| find /v /i "%~f0"') do (
  5.     echo 正在处理文件 %%i
  6.     for /f %%j in ('dir "%%i" 2^>nul ^| findstr /c:"%%~nxi"') do (
  7.         set "FileDate=%%j"
  8.         set "FileDate=!FileDate:/=.!"
  9.         ren "%%i" "!FileDate!-%%~nxi"
  10.     )
  11. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 00:35 , Processed in 0.015145 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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