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

[文件操作] 批处理把当前文件夹下文件全部按现在时间重命名,有没有更好的方法呢?

[复制链接]
发表于 2013-7-12 17:45:47 | 显示全部楼层 |阅读模式
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set num=0
  4. for /f %%i in ('dir /B') do ( set i=%%i
  5. rem 格式化日期
  6. set da=!date:-=_!&&set temp_da=!da:~0,10!&&set ti=!time!&&set temp_ti=!ti::=_!&&set temp_ti=!temp_ti:.=_!
  7. ::查找.字符判断是不是文件夹 文件夹没有“.”
  8. echo "%%i"|find "."&&ren "%%i" !temp_da!_!temp_ti!_!num!.jpg
  9. set /a num+=1
  10. )
  11. pause
复制代码
发表于 2013-7-12 19:46:23 | 显示全部楼层
dir命令本身可以把文件夹过滤掉
  1. dir /b /a-d
复制代码
 楼主| 发表于 2013-7-12 20:23:24 | 显示全部楼层
回复 2# Python

谢谢~! 长知识了~!
发表于 2013-7-12 20:56:41 | 显示全部楼层
for /d 是专门匹配目录的,不过它会忽略隐藏文件夹:
  1. for /d %%a in (*) do (
  2.    rem 你的代码
  3. )
复制代码
发表于 2013-7-12 21:14:14 | 显示全部楼层
格式化日期可以先取全日期_时间再替换
-符号最后先从日期格式中取值定义下,因为系统不一定全用-符号。
用find 至少有那么一个好处,保证时间不重复~~
 楼主| 发表于 2013-7-13 09:29:41 | 显示全部楼层
回复 5# xxpinqz


我是菜鸟哈。①有点不明白怎么样取全日期_时间 如何获得?
                  ②find是怎么样保证时间不重复的 ?

能给点代码看下不?
发表于 2013-7-13 10:34:24 | 显示全部楼层
也没有更好的方法 日期格式 不一定同
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%i in ('dir /b /a-d^|findstr /n .') do ( set i=%%i
  3.         for /f "tokens=1-8 delims=-/\:. " %%a in ("!date! !time!") do (
  4.                 echo ren "%%j" %%a_%%b_%%c_%%e_%%f_%%g_%%h_%%i.jpg"
  5.         )
  6. )
  7. pause
复制代码
发表于 2013-7-13 13:21:43 | 显示全部楼层
回复 6# 441857769@qq.co
关于第一点可以参考7楼代码
第二点,因为FIND执行需要时间的(相当于延迟了),所以下一循环取值时肯定不会和上一次重复的,只是说说,延时手段也很多。
           而没有延迟时,因为代码执行很快,可能循环10来次所取之值都是一样的。
标准化日期时间可参阅:
http://www.bathome.net/thread-3328-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 11:24 , Processed in 0.018907 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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