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

[文件操作] [已解决]如何替换文件名里部分内容为它所在文件夹的名称

本帖最后由 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,需要自动提取文件夹名,然后进行日期替换
谢谢各位大佬!
1

评分人数

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

我也是新手,最好先测试一下:
  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
复制代码

TOP

出错了,改一下吧:
  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
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

太感谢了,测试一下先

TOP

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

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

测试通过,感谢!

TOP

返回列表