使用ruby脚本更改文件扩展名
我试图更改通过控制台传递参数的文件的exstension使用ruby脚本更改文件扩展名,ruby,bash,shell,Ruby,Bash,Shell,我试图更改通过控制台传递参数的文件的exstension system = "rename" , "'s/\#{ARGV[0]}$/\#{ARGV[1]}'", "*#{ARGV[1]}" 代码是正确的,因为它在控制台上工作,但当我把它放在脚本中时,我遇到了麻烦 s/\# 因为它显示为粉红色,而控制台无法获取它 您不想发送文字单引号,所以请删除它们 您希望删除反斜杠,以便让Ruby对这些表达式求值 你错过了后面的斜线 那个等号在干什么 是否要重命名上一个参数中的ARGV[0],而不是ARGV
system = "rename" , "'s/\#{ARGV[0]}$/\#{ARGV[1]}'", "*#{ARGV[1]}"
代码是正确的,因为它在控制台上工作,但当我把它放在脚本中时,我遇到了麻烦
s/\#
因为它显示为粉红色,而控制台无法获取它
ARGV[0]
,而不是ARGV[1]*
通配符,这需要一个shell来扩展为文件列表,这意味着您不能使用系统的列表形式
-n
选项
当然,你不需要为此向壳牌公司求助:
Dir.glob("*#{ARGV[0]}").each {|fname|
newname = fname.sub(/#{ARGV[0]}$/, ARGV[1])
File.rename(fname, newname)
}
“因为它是粉红色的”——你是什么意思?
Dir.glob("*#{ARGV[0]}").each {|fname|
newname = fname.sub(/#{ARGV[0]}$/, ARGV[1])
File.rename(fname, newname)
}