Date: Fri, 16 May 2008 10:11:09 -0700
Reply-To: Lou <lpogoda@HOTMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Lou <lpogoda@HOTMAIL.COM>
Organization: http://groups.google.com
Subject: Re: Unnamed pipe - help needed
Content-Type: text/plain; charset=ISO-8859-1
On May 16, 9:34 am, datan...@GMAIL.COM ("data _null_,") wrote:
> I think I've found a work around using an "environment variable". My
> example uses the sas viewer but I got the same problem you describe
>
> Stderr output:
> 'C:\Program' is not recognized as an internal or external command,
> operable program or batch file.
>
> before I tried this example that does work.
>
> options set=f '"C:\Documents and Settings\testing\SAS\charbase05.sas"';
>
> data _null_;
> string = '"C:\Program Files\SAS\SAS System Viewer\9.1\sv.exe"'||' %f%';
> rc = filename('indd',string,'pipe');
> put rc= string=;
> run;
> filename indd list;
> data _null_;
> infile indd;
> run;
>
> to produce the following in the log....
>
> 784 options set=f '"C:\Documents and Settings\testing\SAS\charbase05.sas"';
> 785
> 786 data _null_;
> 787 string = '"C:\Program Files\SAS\SAS System Viewer\9.1\sv.exe"'||' %f%';
> 788 rc = filename('indd',string,'pipe');
> 789 put rc= string=;
> 790 run;
>
> rc=0 string="C:\Program Files\SAS\SAS System Viewer\9.1\sv.exe" %f%
> NOTE: DATA statement used (Total process time):
> real time 0.00 seconds
> cpu time 0.00 seconds
>
> 791 filename indd list;
> NOTE: Fileref= INDD
> Physical Name= "C:\Program Files\SAS\SAS System Viewer\9.1\sv.exe" %f%
> 792 data _null_;
> 793 infile indd;
> 794 run;
>
> NOTE: The infile INDD is:
> Unnamed Pipe Access Device,
> PROCESS="C:\Program Files\SAS\SAS System Viewer\9.1\sv.exe" %f%,
> RECFM=V,LRECL=256
>
> NOTE: 0 records were read from the infile INDD.
>
> On 5/15/08, 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 -
That works, though I don't see why it does and the stuff I posted
doesn't. Many thanks
Lou
|