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

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

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

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

把你的代码贴出来看看

TOP

命名的日期格式是怎样的?

TOP

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

TOP

运行次数多了就是这样的

TOP

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

这样的话就可以按照文件名排序是很容易就知道什么时候变更的

TOP

建议楼主用一个_符号把前面的名字和日期时间分开,下次命名的时候判断文件名里面是否有了_符号,如果有则不用重新命名了
1

评分人数

TOP

非常感谢超级版主   foxJL   在您的提醒下   终于解决了。谢谢

TOP

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

TOP

返回列表