On 05.11.2012 13:01, Peter Bailey wrote:
> Bartosz Dziewoski wrote in post #1082544:
>> 2012/11/2 Brian Candler <lists / ruby-forum.com>:
>>> Bartosz Dziewoski 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