Date: Thu, 15 May 2008 09:57:29 -0700
Reply-To: Lou <lpogoda@HOTMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Lou <lpogoda@HOTMAIL.COM>
Subject: Re: Unnamed pipe - help needed
Content-Type: text/plain; charset=ISO-8859-1
On May 15, 12:16 pm, RolandRB <rolandbe...@hotmail.com> wrote:
> On May 15, 6:00 pm, Lou <lpog...@hotmail.com> wrote:
> > I'm trying to use an unnamed pipe with Microsoft's File Checksum
> > Integrity Verifier utility and running into a problem I can't figure
> > out.
> > I execute the following code to establish the pipe:
> > data _null_;
> > string = '"O:\Utility Library\File Checksum Integrity Verifier
> > \fciv.exe"' || ' ' ||
> > '"O:\Utility Library\File Checksum Integrity Verifier
> > \readme.txt"';
> > rc = filename('indd', string, 'pipe');
> > put rc=;
> > run;
> > That works OK - the log tells me that rc = 0, and I can see the file
> > definition looks correct in the filename window. I can use the
> > VIEWTABLE command to open SASHELP.VEXTFL, and I see the filename there
> > as well.
> > From viewtable, if I highlight the Path Name and copy it with Control-
> > C, then open a DOS window and paste the path into it, the command
> > executes correctly - the DOS window shows:
> > C:\>"O:\Utility Library\File Checksum Integrity Verifier\fciv.exe" "O:
> > \Utility L
> > ibrary\File Checksum Integrity Verifier\readme.txt"
> > //
> > // File Checksum Integrity Verifier version 2.05.
> > //
> > 79ac8d043dc8739f661c45cc33fc07ac o:\utility library\file checksum
> > integrity veri
> > fier\readme.txt
> > C:\>
> > So far, so good - 79ac8d... is the checksum for the readme.txt file.
> > But when I try to use the pipe in the following code:
> > data _null_;
> > infile indd;
> > input @1 allofit $255.;
> > put allofit=;
> > run;
> > The log shows the following error message insead of the checksum I'm
> > after:
> > NOTE: The infile INDD is:
> > Unnamed Pipe Access Device,
> > PROCESS="O:\Utility Library\File Checksum Integrity Verifier
> > \fciv.exe" "O:\Utility Library\File Checksum Integrity
> > Verifier\readme.txt",
> > RECFM=V,LRECL=256
> > Stderr output:
> > 'O:\Utility' is not recognized as an internal or external command,
> > operable program or batch file.
> > Obviously, the spaces in the path are causing a problem. Further
> > experimentation shows that the problem is the spaces in the path to
> > fciv.exe - if I move the executable to a location where there aren't
> > any spaces in the path, everything works fine, even if there are
> > spaces in the path to the readme.txt file.
> > Problem is, I can't reorganize the company's directory structure to
> > accomodate this one utility. Anyone have any idea how to make this
> > work?
> > If you're interested, the utility is freely downloadabe athttp://support.microsoft.com/kb/841290
> > Thanks for your help.
> > Lou
> Where you have spaces in file names you can put thee sections in
> quotes or the whole file name in quotes. If quotes are expected in any
> case then use an extra set of the other type of quote around the file
> name. Try that and see if it works.- Hide quoted text -
> - Show quoted text -
I'm afraid I don't understand what you're getting at. I'd find it
helpful if you could post an example of what you mean.
If you look at what I posted, you'll see that the fully qualified name
of the executable is quoted with double quotes, as is the fully
qualified name of the target. That quoting works just fine when
executed in a DOS window, but fails in a pipe. Something's different
about the pipe, and I don't know what it is.