Board logo

标题: [文件操作] [已解决]批处理如何根据日期重命名文件? [打印本页]

作者: a194180    时间: 2013-11-2 09:40     标题: [已解决]批处理如何根据日期重命名文件?

本帖最后由 a194180 于 2013-11-3 17:19 编辑

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

把你的代码贴出来看看
作者: foxJL    时间: 2013-11-2 10:47

命名的日期格式是怎样的?
作者: a194180    时间: 2013-11-2 10: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"
复制代码

作者: a194180    时间: 2013-11-2 10:57

运行次数多了就是这样的
作者: a194180    时间: 2013-11-2 11:04

每运行一次就会在后面多一个日期
我想命名格式是这样的
文件名+日期
比如:中心轴.pdf是2013年10月20日上传的    当天晚上10点钟 自动命名为:中心轴20131020.pdf
第二天设计变更了,又传了一次  中心轴.pdf   ,这天晚上自动命名为:中心轴20131021.pdf

这样的话就可以按照文件名排序是很容易就知道什么时候变更的
作者: foxJL    时间: 2013-11-2 11:08

建议楼主用一个_符号把前面的名字和日期时间分开,下次命名的时候判断文件名里面是否有了_符号,如果有则不用重新命名了
作者: a194180    时间: 2013-11-2 13:44

非常感谢超级版主   foxJL   在您的提醒下   终于解决了。谢谢
作者: a194180    时间: 2013-11-2 13:44

本帖最后由 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"
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2