Board logo

标题: [文件操作] [已解决]如何替换文件名里部分内容为它所在文件夹的名称 [打印本页]

作者: kerafan    时间: 2011-10-2 19:54     标题: [已解决]如何替换文件名里部分内容为它所在文件夹的名称

本帖最后由 kerafan 于 2011-10-3 14:27 编辑

各位大佬,小弟这里有个小问题需要解决一下:
我有个文件夹:D:\Work\功能清单\20111001\,这个文件夹下面有很多文件,这些文件的命名规律是:姓名-内容描述-日期-序号.后缀名,如下:
刘德华-新增配置-20110928-001.xls
刘德华-新增配置-20110928-002.txt
刘德华-新增配置-20110928-003.txt
刘德华-新增配置-20110928-004.txt
现在我需要修改这些文件的日期和它所在文件夹的日期一致,修改后变成这样:
刘德华-新增配置-20111001-001.xls
刘德华-新增配置-20111001-002.txt
刘德华-新增配置-20111001-003.txt
刘德华-新增配置-20111001-004.txt
请问怎么用批处理来实现这个操作?
注:文件夹的日期并非固定为20111001,需要自动提取文件夹名,然后进行日期替换
谢谢各位大佬!
作者: 545810831    时间: 2011-10-3 07:51

我也是新手,最好先测试一下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r D:\Work\功能清单\  %%i in (*) do (
  4. for  %%j in (%%~dpi\.) do set na=%%~nj
  5. for /f "tokens=1-4  delims=-" %%a in ("%%i") do  ren %%a-%%b-%%c-%%d %%a-%%b-!na!-%%d
  6. )
  7. pause
复制代码

作者: 545810831    时间: 2011-10-3 08:07

出错了,改一下吧:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r D:\Work\功能清单\  %%i in (*) do (
  4. for  %%j in (%%~dpi\.) do set na=%%~nj
  5. for /f "tokens=1-4  delims=-" %%a in ("%%~nxi") do   ren %%~dpi%%a-%%b-%%c-%%d  %%a-%%b-!na!-%%d
  6. )
  7. pause
复制代码

作者: kerafan    时间: 2011-10-3 11:13

太感谢了,测试一下先
作者: Hello123World    时间: 2011-10-3 14:03

本帖最后由 Hello123World 于 2011-10-3 14:08 编辑
  1. @echo off&SetLocal EnableDelayedExpansion
  2. For /f "delims=" %%i in ('dir /s /b /ad "D:\Work\功能清单"') do (
  3. Set name=%%~ni
  4. For /f "tokens=1-4 delims=-" %%j in ('dir /b "D:\Work\功能清单\!name!\*.*"') do (
  5. ren "%%~dpj%%j-%%k-%%l-%%m" "%%j-%%k-!name!-%%m")
  6. )
  7. pause
复制代码

作者: kerafan    时间: 2011-10-3 14:27

测试通过,感谢!




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