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

[文件操作] [已解决]批处理如何根据日期重命名文件?

[复制链接]
发表于 2013-11-2 09:40:22 | 显示全部楼层 |阅读模式
本帖最后由 a194180 于 2013-11-3 17:19 编辑

我是搞机械设计的,对计算机批处理只是皮毛。
目前单位要对图纸和技术资料进行统一管理,我建立了一个ftp服务器,大家将图纸按照所属关系放在里面比如:机械部分\重庆大兴机械厂\减速机01\
在减速机01目录下就放置它相关的图纸,现在我是用bat重命名命令在每天晚上10点钟,对服务器备份(把图纸原来的名字后面加上当天的日期),但是第二天又会增加第二天的日期,所以搞的文件名越来越长,
有没有一种办法只重命名当天的文件

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-11-2 09:58:39 | 显示全部楼层
把你的代码贴出来看看
发表于 2013-11-2 10:47:15 | 显示全部楼层
命名的日期格式是怎样的?
 楼主| 发表于 2013-11-2 10:54:54 | 显示全部楼层
本帖最后由 foxJL 于 2013-11-2 14:53 编辑

我的代码:
  1. @echo off   复制正在进行中.....请稍候.....


  2. rem 获取日期(假设系统日期格式为yyyy-mm-dd)

  3. set ThisDay=%date:~0,4%%date:~5,2%%date:~8,2%



  4. rem 获取时间


  5. if "%time:~0,2%" lss "10" (
  6. set ThisTime=0%time:~1,1%%time:~3,2%)
  7. else

  8. (set ThisTime=%time:~0,2%%time:~3,2%
  9. )

  10. set t=%ThisDay%

  11. rem 复制并重命名

  12. setlocal enabledelayedexpansion

  13. for /f "delims=*" %%i in ('dir/s/b/a-d d:\0001\') do ren "%%i" "%%~ni%t%%%~xi"
复制代码
 楼主| 发表于 2013-11-2 10:57:51 | 显示全部楼层
运行次数多了就是这样的
 楼主| 发表于 2013-11-2 11:04:48 | 显示全部楼层
每运行一次就会在后面多一个日期
我想命名格式是这样的
文件名+日期
比如:中心轴.pdf是2013年10月20日上传的    当天晚上10点钟 自动命名为:中心轴20131020.pdf
第二天设计变更了,又传了一次  中心轴.pdf   ,这天晚上自动命名为:中心轴20131021.pdf

这样的话就可以按照文件名排序是很容易就知道什么时候变更的
发表于 2013-11-2 11:08:35 | 显示全部楼层
建议楼主用一个_符号把前面的名字和日期时间分开,下次命名的时候判断文件名里面是否有了_符号,如果有则不用重新命名了

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-11-2 13:44:20 | 显示全部楼层
非常感谢超级版主   foxJL   在您的提醒下   终于解决了。谢谢
 楼主| 发表于 2013-11-2 13:44:54 | 显示全部楼层
本帖最后由 foxJL 于 2013-11-2 14:53 编辑

最后的程序
  1. @echo off   复制正在进行中.....请稍候.....


  2. rem 获取日期(假设系统日期格式为yyyy-mm-dd)

  3. set ThisDay=%date:~0,4%%date:~5,2%%date:~8,2%

  4. rem 获取时间

  5. if "%time:~0,2%" lss "10" (
  6. set ThisTime=0%time:~1,1%%time:~3,2%)
  7. else

  8. (set ThisTime=%time:~0,2%%time:~3,2%
  9. )

  10. set t=%ThisDay%
  11. set    a=%_%
  12. set    b=%a%_%t%

  13. rem 复制并重命名

  14. setlocal enabledelayedexpansion


  15. :newname

  16. for /f "delims=_" %%i in ('dir/s/b/a-d d:\0001\') do ren "%%i" "%%~ni%b%%%~xi"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 22:03 , Processed in 0.032104 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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