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")

完全可以连起来写。
页: 1 2 [3]
查看完整版本: 输出不带变量的字符串老是报错