On Tue, Sep 17, 2002 at 08:00:06AM -0400, FlashGuy wrote: > Hi, Hi FlashGuy,
> I have a web interface where I'm executing a compiled perl script. Within the perl >script I'm trying to execute a DOS command but its not working properly. > If I put my command in a batch file and execute the batch file from the perl script >it works. I know it's because copy is not a program...it's a function inside the >command.com > /cmd.exe shell interpreter. That's why it works when it's a batch file...because >the batch is implicitly run under the shell interpreter. > > This is the line in my perl script that is not quite doing what I want it to do. >Copy the file. > > system("command.com copy /C d:\test\input.ps e:\test\output.ps"); > > When I run the above line from a DOS command prompt this is the error I get. > > File not found - D:\TEST\INPUT.PS > 0 file(s) copied > > What wrong? In Perl, backslashes escape the character that follows them, just like in C. If you want a literal backslash, you need either "\\" or '\': system("command.com copy /C d:\\test\\input.ps e:\\test\\output.ps"); or system('command.com copy /C d:\test\input.ps e:\test\output.ps'); The latter example is probably perferable. But that still doesn't explain why it lists the file as "D:\TEST\INPUT.PS", which seems correct (I would expect it to say something like "D: EST NPUT.PS".) But I've never messed with DOS, so I can't be sure. -- Michael -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]