标题: [文件操作] [已解决]批处理怎样根据文本内容批量更改文件名? [打印本页]
作者: liht1024 时间: 2011-11-17 10:55 标题: [已解决]批处理怎样根据文本内容批量更改文件名?
本帖最后由 liht1024 于 2011-11-21 11:17 编辑
问题实质上就是要根据文本内容批量替换文件名的某些字符。
有上百个文件(文件名没有规律),分别含有字符(这些字符的前后可能还有其它字符)如下:
111,111_1,1_222,222_r,i_333_r,333,444,444_f,121,121_f_1,112,r_112_i,233_k,233_h,......,
现在有一个文本文件,分为两列,第一列为现有文件名中含有的字符,第二列为要文件名中要添加的字符,如下:
111 ABC
222 CCC
333 ABA
444 ABC
121 CCC
112 DDD
233 ACD
......
求一批处理,将第二列的字符加到现有文件名字符前面,且用"_"隔开,结果如下:
ABC_111
CCC_222
ABA_333
ABC_444
CCC_121
DDD_112
ACD_233
......
谢谢!
作者: justdoit2003 时间: 2011-11-17 12:55
用excel打开该文本文件,上述内容在A、B两列,在C1格内填写公式:="ren "&A1&" "&B1&"_"&A1
朝下一拉公式,就得到:- ren 111 ABC_111
- ren 222 CCC_222
- ren 333 ABA_333
- ren 444 ABC_444
- ren 121 CCC_121
- ren 112 DDD_112
- ren 233 ACD_233
复制代码
然后把C列的内容复制出来粘贴到记事本里,保存为bat文件就可以了。
注:对于这种一次性的工作,用excel配合工作最合适了。
作者: awk 时间: 2011-11-17 13:02
- @echo off
- for /f "tokens=1-2" %%a in (C:\test\list.txt) do (
- ren "D:\test\%%a" "%%b_%%a"
- )
复制代码
作者: justdoit2003 时间: 2011-11-17 13:30
遇到高手了,学习学习
作者: liht1024 时间: 2011-11-17 15:20
高手们今天都休假去了?
作者: 545810831 时间: 2011-11-17 20:11
本帖最后由 545810831 于 2011-11-17 20:21 编辑
- @echo off
- for /f "tokens=1-2" %%i in (1.txt) do (
- for /f "delims=" %%a in ('dir /b "*%%i*.*"') do ren "%%a" "%%j_%%i%%~xa"
- )
- pause
复制代码
作者: awk 时间: 2011-11-17 20:41
回复 5# liht1024
3楼的代码不行吗?
作者: 545810831 时间: 2011-11-18 06:33
出问题了,如果目录内有文件夹,代码也会把符合条件的文件夹改名了,还不知如何解决?
作者: liht1024 时间: 2011-11-18 13:02
回复 3# awk
这个代码只能适用于文件名只含那些字符的文件,如果文件名还有其它字符则不行。
作者: liht1024 时间: 2011-11-18 13:17
回复 6# 545810831
如果同时存在111_1、111_2这样的文件,就不能改名了。
作者: CrLf 时间: 2011-11-18 13:30
回复 9# liht1024
那是楼主没有事先说明背景环境,所以别人才无法给你量体裁衣。
建议在顶楼更新一个文件列表作为参照,隐私部分可用其他字符替代,格式不变即可
作者: awk 时间: 2011-11-18 16:29
回复 10# liht1024
在这种情况下,你希望改成什么样子?
作者: 545810831 时间: 2011-11-20 06:32
改了一下代码,应该可以了吧- @echo off
- for /f "tokens=1-2" %%i in (1.txt) do (
- for /f "delims=" %%a in ('dir /a-d /b "*%%i*"') do ren "%%a" "%%j_%%~nxa"
- )
- pause
复制代码
作者: liht1024 时间: 2011-11-21 11:16
回复 13# 545810831
谢谢,问题已经解决,就是这样的。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |