laohuanggua
发表于 2010-12-31 20:21
利用这个功能完成了一个小程序。只能在1.9.2下执行:oops:
本程序用来把youku下载的文件名中的&mash;和空格等多余字符给去掉。并非直接改名,而是先用windows的命令行dir /b生成文件列表名list1
而后用本程序去处理这个list1,得到一个rename.bat文件,再在windows下执行这个bat才能完成改名。。。比较菜的说
#!/usr/bin/ruby -w
require 'iconv'
array01=File.open("list1").readlines
#puts array01
array01.each{|ele|
#将行取出,去掉后面的换行符
ele=ele.chop
chuli=ele.gsub(/—/,"")
chuli=chuli.gsub(/ /,"")
chuli=chuli.encode("gbk")
#在windows中用ren做改名的命令
puts "ren \"#{ele}\" \"#{chuli}\"" >> rename.bat
}
laohuanggua
发表于 2010-12-31 20:22
不知道我这个帖子是不是2010年本区最后一个:em18:
Sapien
发表于 2010-12-31 21:27
利用这个功能完成了一个小程序。只能在1.9.2下执行
本程序用来把youku下载的文件名中的&mash;和空 ...
laohuanggua 发表于 2010-12-31 20:21 http://bbs.chinaunix.net/images/common/back.gif
遍历目录,重命名等操作可以很方便的用 Ruby 完成:
Dir.glob("**/*") { |f| File.rename(f, new_filename) }
laohuanggua
发表于 2010-12-31 21:34
回复 23# Sapien
谢谢!!!
求问
如要仅仅改变A开头的txt文件,是不是要用map来做是最方便的?
Sapien
发表于 2010-12-31 21:42
回复 24# laohuanggua
遍历的时候就可以只选择你要的文件啊:
Dir.glob("**/A*.txt") { |f| ... }
zuerrong
发表于 2010-12-31 21:48
# ele=ele.chop
# chuli=ele.gsub(/—/,"")
# chuli=chuli.gsub(/ /,"")
# chuli=chuli.encode("gbk")
完全可以连起来写。