. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
tommy
 
tommy 的头像
超级会员
 
资 料:
注册日期: Jun 2006
帖子: 1,071 声望值: 3
精华: 1
#16 旧 2008-07-29, 19:34:29 默认
tommy 当前离线  

引用:
作者: crackabc 查看帖子
我也来问一下,有什么好的文件重命名工具,要尽量完整支持正则的。
powergrep好像只能替换文件里的东西。
vim + Renamer 插件。我一直都这样用。vim中的正则表达式非常强大的。
好像还有另一个插件也能干这件事。
slownet
 
slownet 的头像
热心会员
 
资 料:
注册日期: Dec 2000
帖子: 2,317 声望值: 8
精华: 11,解答: 8
#17 旧 2008-07-29, 19:51:56 默认
slownet 当前离线  

引用:
作者: thuer 查看帖子
total commander语法稍有不同,但也很强大:
查找:-(\d{1,2})([^\d])
替换:-0$1$2
重复三次。
查找:-(\d)(\D)
替换:-00$1$2

查找:-(\d\d)(\D)
替换:-0$1$2

替换两次。
shiyu46
 
shiyu46 的头像
高级会员
 
资 料:
注册日期: Sep 2001
帖子: 558 声望值: 3
精华: 2,解答: 5
#18 旧 2008-07-29, 20:30:33 默认
shiyu46 当前离线  

用bat展示下,具体是这个是文件中的内容呢还是文件需要改名呢还是需要根据要求修改
引用:
  1. @echo off&&setlocal enabledelayedexpansion
  2. set er=000
  3. set n=0
  4. for /f "tokens=1,2,3* delims=-." %%a in (1.txt) do (
  5. rem==================================↑这个地方只是个展示,可以通过各种途径获得。
  6. set /a n+=1
  7. set a!n!=%%a
  8. set b!n!=%er%%%%b
  9. set c!n!=%er%%%%c
  10. set d!n!=%%d
  11. )
  12. for /l %%t in (1,1,%n%) do (
  13. call call echo %%%%a%%t%%%%-%%%%b%%t:~-3%%%%-%%%%c%%t:~-3%%%%.%%%%d%%t%%%%
  14. )
  15. pause
shiyu46发表于: 2008-07-29 20:31

此帖于 2008-07-29 20:32:04 被 shiyu46 编辑. . 原因: 没暂停
thuer
 
thuer 的头像
初级会员
 
资 料:
注册日期: Mar 2004
帖子: 218 声望值: 2
精华: 0,解答: 1
#19 旧 2008-07-29, 20:33:57 默认
thuer 当前离线  

高啊,回去参悟一下
引用:
作者: lucida 查看帖子
取巧的办法,假如非要一行解决

[shell]
$ awk 'BEGIN { FS = "-" } ; { printf("mv %s %s-%03d-%03d.mp3\n",$0, $1,$2,$3) }
' < test.txt > rename.cmd

$ c......
shiyu46
 
shiyu46 的头像
高级会员
 
资 料:
注册日期: Sep 2001
帖子: 558 声望值: 3
精华: 2,解答: 5
#20 旧 2008-07-29, 20:36:27 默认
shiyu46 当前离线  

展示下贴图
thuer
 
thuer 的头像
初级会员
 
资 料:
注册日期: Mar 2004
帖子: 218 声望值: 2
精华: 0,解答: 1
#21 旧 2008-07-29, 20:37:43 默认
thuer 当前离线  

引用:
作者: slownet 查看帖子
查找:-(\d)(\D)
替换:-00$1$2

查找:-(\d\d)(\D)
替换:-0$1$2

替换两次。
第二个操作也得两次,不信你试试,就是形如"英语000-11-22"这样了,查找-(\d\d)(\D)替换成-0$1$2,第一次只能换掉11,得再来一次才能换掉22。
thuer
 
thuer 的头像
初级会员
 
资 料:
注册日期: Mar 2004
帖子: 218 声望值: 2
精华: 0,解答: 1
#22 旧 2008-07-29, 20:40:00 默认
thuer 当前离线  

只是要改名
引用:
作者: shiyu46 查看帖子
用bat展示下,具体是这个是文件中的内容呢还是文件需要改名呢还是需要根据要求修改
shiyu46
 
shiyu46 的头像
高级会员
 
资 料:
注册日期: Sep 2001
帖子: 558 声望值: 3
精华: 2,解答: 5
#23 旧 2008-07-29, 21:02:40 默认
shiyu46 当前离线  

假设文件名是从1.txt来的,当然实际上可能从dir来
引用:
  1. @echo off&&setlocal enabledelayedexpansion
  2. set er=000
  3. set n=0
  4. set n1=0
  5. for /f "tokens=1,2,3* delims=-." %%a in (1.txt) do (
  6. rem==================================↑这个地方只是个展示,可以通过各种途径获得。
  7. set /a n+=1
  8. set a!n!=%%a
  9. set b!n!=%er%%%%b
  10. set c!n!=%er%%%%c
  11. set d!n!=%%d
  12. )
  13. for /f %%w in (1.txt) do (
  14. set /a n1+=1
  15. call ren %%w %%a!n1!%%-%%b!n1!:~-3%%-%%c!n1!:~-3%%.%%d!n1!%%
  16. )
  17. pause
shiyu46发表于: 2008-07-29 21:02
shiyu46
 
shiyu46 的头像
高级会员
 
资 料:
注册日期: Sep 2001
帖子: 558 声望值: 3
精华: 2,解答: 5
#24 旧 2008-07-29, 21:11:30 默认
shiyu46 当前离线  

传不了附件真难展示。。
把1.txt 新建.bat 改名.bat放在一个目录就可以看效果了。。
1.txt内容
代码:
英语口语365-1-19.mp3
英语口语365-20-38.mp3
英语口语365-39-56.mp3
英语口语365-57-75.mp3
英语口语365-76-93.mp3
英语口语365-94-111.mp3
新建.bat 内容
引用:
  1. @echo off
  2. for /f %%a in (1.txt) do type nul > %%a
shiyu46发表于: 2008-07-29 21:10
改名.bat就是上面那个啦~
先运行新建生成文件,然后改名展示效果
thuer
 
thuer 的头像
初级会员
 
资 料:
注册日期: Mar 2004
帖子: 218 声望值: 2
精华: 0,解答: 1
#25 旧 2008-07-29, 22:26:14 默认
thuer 当前离线  

引用:
作者: shiyu46 查看帖子
传不了附件真难展示。。
把1.txt 新建.bat 改名.bat放在一个目录就可以看效果了。。
1.txt内容
[code]
英语口语365-1-19.mp3
英语口语365-20-38.mp3
英语口语365-39-56.mp3
英语口语365-57-75.mp3
英语口语365-76-93.mp3
英语口语365-...
方法越来越多啦
wiise
 
wiise 的头像
支柱会员
 
资 料:
注册日期: Mar 2002
帖子: 4,807 声望值: 5
精华: 0,解答: 2
#26 旧 2008-07-29, 23:45:08 默认
wiise 当前离线  

tc做这个最简单的办法应该是先都补三个0,然后再把多的删除,这样两步基本就搞定了。

另外tc7以后增加的在crtl+m窗口中“编辑文件名”功能非常实用,借用emeditor或者ue的正则和列选择功能,可以轻松完成重命名需求。
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 03:05:52.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号