From: Alex Gutteridge Date: 2012-11-05T22:37:46+09:00 Subject: Re: exception: can't convert nil into String On 05.11.2012 13:01, Peter Bailey wrote: > Bartosz Dziewo��ski wrote in post #1082544: >> 2012/11/2 Brian Candler : >>> Bartosz Dziewo��ski wrote in post #1082535: >>>> You don't set the pdffile variable anywhere. >>> >>> ? >>> >>> He sets it to ARGV[0]. Perhaps he ran the script without providing >>> an >>> argument? >> >> Ugh, that's right, sorry. I don't know why I missed it; perhaps I >> should try reading more carefully :/ >> >> -- Matma Rex > > Thanks for your responses. I defined the variable with the ARGV, > correct. I'm globbing PDFs just to see if there are any PDFs. If > there > aren't any, then, I exit the script. This script only works on PDFs, > in > that folder. I run this script, along with many, many other scripts > like > it, with a scheduling utility called ActiveBatch. I've told that > scheduling utility to fire this script when there's one PDF, at > least, > in the folder. So, yes, the ARGV[0] stands for the one file at a time > way of executing against one or more PDF files. Thanks. As Brian says it looks like ARGV[0] is not getting set (i.e. ActiveBatch is running it without an argument). It's a bit confusing because you say this will only be run if there are one or more pdf files, but then explicitly test for whether there are any files - is it just belt and braces? Is this (untested obvs.) snippet equivalent to what you want? require 'rubygems' require 'fileutils' require 'net/ftp' Dir.chdir("F:/workflows/graphics/asura-post/vijay/in") pdffiles = Dir.glob("*.pdf") exit if pdffiles.length == 0 FileUtils.cp(pdffiles[0], "//mako/archive/vijay") FileUtils.mv(pdffiles[0], "../scratch") -- Alex Gutteridge