标题: [文件操作] [ 已解决 ]批处理如何在文件名的开头的数字后面添加所在的文件夹名称? [打印本页]
作者: viziyu 时间: 2015-9-16 18:21 标题: [ 已解决 ]批处理如何在文件名的开头的数字后面添加所在的文件夹名称?
本帖最后由 pcl_test 于 2017-6-29 00:01 编辑
前辈们,帮我写一个批处理可以吗?
工作中要经常把一批文件改名,如
003通讯录.doc,改成 003文件夹名称通讯录.doc
02长期负债.jpg,改成 02文件夹名称长期负债.jpg
5清单2.jpg,改成 5文件夹名称清单2.jpg(即后面的数字不理会)
“文件夹名称”是变量
要求
一、在文件名前面的数字后添加“文件夹名称”,处理文件夹里面的所有文件,“文件夹名称”自动获得。
二、只在文件名前面的数字串后添加“文件夹名称”,文件名后面出现的数字不理会。
多谢你们了!
作者: 回家路上 时间: 2015-9-16 20:41
本帖最后由 回家路上 于 2015-9-16 22:57 编辑
- @echo off & setlocal enabledelayedexpansion
- :: p是文件所在文件夹
- set p=D:\xxx\xxx
- cd /d %p%
- for /f "delims=" %%i in ('dir /b %p%') do (
- set fn=1%%~ni& set /a dn=fn-0
- for %%j in (!dn!) do set fn=!fn:*%%j=!
- ren "%%i" "!dn:~1!文件夹名称!fn!%%~xi"
- )
- pause & exit /b
复制代码
作者: viziyu 时间: 2015-9-16 22:44
回家路上 发表于 2015-9-16 20:41
楼上可能有所误解,我要的是更改文件名称,不是移动的
作者: 回家路上 时间: 2015-9-16 22:58
回复 3# viziyu
已修改。
作者: viziyu 时间: 2015-9-16 23:09
回复 viziyu
已修改。
回家路上 发表于 2015-9-16 22:58
非常感谢你,实测是有效的!但还需要一点点改进,就是“文件夹名称”这里,改进为自动获得,比如要处理的文件在名为“测试”的文件夹里,就自动获得“测试”,在文件在名为“正常”的文件夹里,自动获得“正常”
作者: viziyu 时间: 2015-9-17 00:38
经过改进可以使用了,感谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |