2009年3月13日金曜日

Windowsでwhich

whichがないと何かと不便。
whichはとっても便利なのになんで標準装備されていないのだろう・・・

#! ruby

def search_dir(result, target_path)
puts " #{target_path}" if $DEBUG
Dir[target_path].each do |file|
unless result.index(file)
puts(file.gsub(/\//, '\\'))
result << file
end
end
end

def main(args)
if args.size == 0
puts "Usage error: which keyword"
exit
end

target = args[0]
result = []

(['.'] + ENV['PATH'].split(';')).each do |path|
path.sub!(/^"*/, '').sub!(/"*$/, '')
search_dir(result, File.expand_path(File.join(path, "#{target}")))
search_dir(result, File.expand_path(File.join(path, "#{target}.*")))
end
end

main(ARGV)

0 件のコメント:

コメントを投稿