Date: Thu, 15 May 2008 22:12:21 -0700
Reply-To: RolandRB <rolandberry@HOTMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: RolandRB <rolandberry@HOTMAIL.COM>
Subject: Re: Unnamed pipe - help needed
Content-Type: text/plain; charset=ISO-8859-1
On May 15, 6:57 pm, Lou <lpog...@hotmail.com> wrote:
> 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.- Hide quoted text -
> - Show quoted text -
"Name with spaces"
"'Name with spaces'"