大家早上好。我需要写一个Ruby脚本来删除文件夹中文件名中的数字字符。它的工作,但不幸的是,一些文件被删除,因为一旦数字字符被删除,他们将有相同的名称,或者他们将是空的。我试图插入一个条件来避免它,但是没有任何东西被重命名了。你能帮我吗?这就是代码:
require 'fileutils'
folder = ARGV[0]
Dir.chdir(folder)
Dir.glob("*.*") do |file|
new_name = file.gsub(/[0-9]/, "")
FileUtils.mv(file, new_name) if !file.empty? && !File.exist?(file)
end
先谢谢你了。
2条答案
按热度按时间uqjltbpv1#
我相信你是想这样写:
而不是这样:
不再重命名任何内容
...因为脚本说“不要重命名任何存在的文件”😅
tp5buhyn2#
为了扩展现有的答案,您应该检查并报告是否满足某些条件。通过打印到
STDERR
,您可以选择隐藏这些错误,或者打印它们。