Austin, AZ> Try changing this to: AZ> system("dcpropgst.bat", @@gsdir, @@gsfontdir, @@prttxt) This doesn't call the .bat file at all. > AZ> If you can't predict how many parameters, do this: AZ> params = [ @@gsdir, @@gsfontdir, @@prttxt ] AZ> system("dcpropgst.bat", *params) Neither does this one. If I wanted to hard code the paths as well as the printer code, it will work. What I see happening is that when I pass the 3 parameters as I think that they should be passed is that the 2nd & 3rd params aren't in fact passed. Here is dcpropgst.bat: %1 -I%2 -sDEVICE=%3 -dNOPAUSE print.ps -c quit This: system( %{"dcpropgst.bat",#{@@gsdir} #{@@gsfontdir} #{@@prttxt}} ) (or this because the braces aren't needed) system( %{"dcpropgst.bat",#@@gsdir #@@gsfontdir #@@prttxt} ) Causes this: C:\JDR\Ruby>C:\DCPro\gs\gs8.14\bin\gswin32.exe -I -sDEVICE= -dNOPAUSE print.ps -c quit Putting commas between the params is also irrelevant, in my testing, as they all produce the above result. John Reed