标题: [文件操作] [已解决]如何替换文件名里部分内容为它所在文件夹的名称 [打印本页]
作者: 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
我也是新手,最好先测试一下:- @echo off
- setlocal enabledelayedexpansion
- for /r D:\Work\功能清单\ %%i in (*) do (
- for %%j in (%%~dpi\.) do set na=%%~nj
- for /f "tokens=1-4 delims=-" %%a in ("%%i") do ren %%a-%%b-%%c-%%d %%a-%%b-!na!-%%d
- )
- pause
复制代码
作者: 545810831 时间: 2011-10-3 08:07
出错了,改一下吧:- @echo off
- setlocal enabledelayedexpansion
- for /r D:\Work\功能清单\ %%i in (*) do (
- for %%j in (%%~dpi\.) do set na=%%~nj
- for /f "tokens=1-4 delims=-" %%a in ("%%~nxi") do ren %%~dpi%%a-%%b-%%c-%%d %%a-%%b-!na!-%%d
- )
- pause
复制代码
作者: kerafan 时间: 2011-10-3 11:13
太感谢了,测试一下先
作者: Hello123World 时间: 2011-10-3 14:03
本帖最后由 Hello123World 于 2011-10-3 14:08 编辑
- @echo off&SetLocal EnableDelayedExpansion
- For /f "delims=" %%i in ('dir /s /b /ad "D:\Work\功能清单"') do (
- Set name=%%~ni
- For /f "tokens=1-4 delims=-" %%j in ('dir /b "D:\Work\功能清单\!name!\*.*"') do (
- ren "%%~dpj%%j-%%k-%%l-%%m" "%%j-%%k-!name!-%%m")
- )
- pause
复制代码
作者: kerafan 时间: 2011-10-3 14:27
测试通过,感谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |