<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: SAS 9.2: Macro variable with quotes is not working. in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107891#M30079</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote" modifiedtitle="true"&gt;
&lt;P&gt;/**&amp;nbsp; Not Working with macro variable **/&lt;/P&gt;
&lt;BLOCKQUOTE class="jive-quote"&gt;
&lt;P&gt;***************************************************************************************************&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;filename DIRLIST pipe 'dir "&amp;amp;path1." /B';&lt;/P&gt;
&lt;P&gt;data dirlist ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;================================================================================================&lt;/P&gt;
&lt;P&gt;/** Result **/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;1695&amp;nbsp; %let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;1696&lt;/P&gt;
&lt;P&gt;1697&amp;nbsp; filename DIRLIST pipe 'dir "&amp;amp;path1." /B';&lt;/P&gt;
&lt;P&gt;1698&amp;nbsp; data dirlist ;&lt;/P&gt;
&lt;P&gt;1699&lt;/P&gt;
&lt;P&gt;1700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;1701&lt;/P&gt;
&lt;P&gt;1702&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;1703&lt;/P&gt;
&lt;P&gt;1704&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;1705&amp;nbsp; run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;NOTE: The infile DIRLIST is:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unnamed Pipe Access Device,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROCESS=dir "&amp;amp;path1." /B,RECFM=V,LRECL=256&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Stderr output:&lt;/P&gt;
&lt;P&gt;File Not Found&lt;/P&gt;
&lt;P&gt;NOTE: 0 records were read from the infile DIRLIST.&lt;/P&gt;
&lt;P&gt;NOTE: The data set WORK.DIRLIST has 0 observations and 1 variables.&lt;/P&gt;
&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Double up on the double quotes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let path1 = C:\work\test\final output;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filename DIRLIST pipe "dir ""&amp;amp;path1"" /B";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think this is documented in the Concepts Guide somewhere, but it's been a while since I've read it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, for this scenario, I've gotten good results from DOPEN/DREAD.&amp;nbsp; In general, I prefer to use portable code when I can.&amp;nbsp; Check out the sample code here:&amp;nbsp; &lt;A href="http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000209687.htm" title="http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000209687.htm"&gt;http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000209687.htm&lt;/A&gt;.&amp;nbsp; It's easily converted to a data step.&amp;nbsp; The only downside is no support for wildcards in DOPEN, but this is easily supported with prxmatch.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Untested:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dirlist;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; length filename $200;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rc=filename("dir","c:\temp");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; did=dopen("dir");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i=1 to dnum(did);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename=dread(did,i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if prxmatch("/^test.*\.sas/io",filename) then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; did=dclose(did);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rc=filename("dir");&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This would keep all the files named test*.sas in c:\temp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I admit the prxmatch syntax isn't quite as straightforward as the dir command's wildcards, but it's not hard once you get used to it.&amp;nbsp; Plus you don't need it if you want to read the entire directory (your example doesn't use wildcards in the dir command).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It may look like a lot of code but it performs quite well, esp. since you're not spawning an external process to execute the pipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTH,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 16 Jul 2012 11:32:24 GMT</pubDate>
    <dc:creator>ScottBass</dc:creator>
    <dc:date>2012-07-16T11:32:24Z</dc:date>
    <item>
      <title>SAS 9.2: Macro variable with quotes is not working.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107889#M30077</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have the below code wherein it will work if path is hard coded but it's not working when macro variable is referenced (it says 0 records read). Please help me in getting the issue resolved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**&amp;nbsp; Working fine without macro variable **/&lt;/P&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;
&lt;P&gt;***************************************************************************************************&lt;/P&gt;
&lt;P&gt;%let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;filename DIRLIST pipe 'dir "C:\work\test\final output" /B';&lt;/P&gt;
&lt;P&gt;data dirlist ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;================================================================================================&lt;/P&gt;
&lt;P&gt;/** Result **/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;1684&amp;nbsp; %let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;1685&lt;/P&gt;
&lt;P&gt;1686&amp;nbsp; filename DIRLIST pipe 'dir "C:\work\test\final output" /B';&lt;/P&gt;
&lt;P&gt;1687&amp;nbsp; data dirlist ;&lt;/P&gt;
&lt;P&gt;1688&lt;/P&gt;
&lt;P&gt;1689&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;1690&lt;/P&gt;
&lt;P&gt;1691&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;1692&lt;/P&gt;
&lt;P&gt;1693&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;1694&amp;nbsp; run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;NOTE: The infile DIRLIST is:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unnamed Pipe Access Device,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROCESS=dir "C:\work\test\final output" /B,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECFM=V,LRECL=256&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;NOTE: 2 records were read from the infile DIRLIST.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The minimum record length was 3.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The maximum record length was 3.&lt;/P&gt;
&lt;P&gt;NOTE: The data set WORK.DIRLIST has 2 observations and 1 variables.&lt;/P&gt;
&lt;P&gt;NOTE: Compressing data set WORK.DIRLIST increased size by 100.00 percent.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Compressed is 2 pages; un-compressed would require 1 pages.&lt;/P&gt;
&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**&amp;nbsp; Not Working with macro variable **/&lt;/P&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;
&lt;P&gt;***************************************************************************************************&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;filename DIRLIST pipe 'dir "&amp;amp;path1." /B';&lt;/P&gt;
&lt;P&gt;data dirlist ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;================================================================================================&lt;/P&gt;
&lt;P&gt;/** Result **/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;1695&amp;nbsp; %let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;1696&lt;/P&gt;
&lt;P&gt;1697&amp;nbsp; filename DIRLIST pipe 'dir "&amp;amp;path1." /B';&lt;/P&gt;
&lt;P&gt;1698&amp;nbsp; data dirlist ;&lt;/P&gt;
&lt;P&gt;1699&lt;/P&gt;
&lt;P&gt;1700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;1701&lt;/P&gt;
&lt;P&gt;1702&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;1703&lt;/P&gt;
&lt;P&gt;1704&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;1705&amp;nbsp; run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;NOTE: The infile DIRLIST is:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unnamed Pipe Access Device,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROCESS=dir "&amp;amp;path1." /B,RECFM=V,LRECL=256&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Stderr output:&lt;/P&gt;
&lt;P&gt;File Not Found&lt;/P&gt;
&lt;P&gt;NOTE: 0 records were read from the infile DIRLIST.&lt;/P&gt;
&lt;P&gt;NOTE: The data set WORK.DIRLIST has 0 observations and 1 variables.&lt;/P&gt;
&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2012 09:29:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107889#M30077</guid>
      <dc:creator>1239</dc:creator>
      <dc:date>2012-07-16T09:29:09Z</dc:date>
    </item>
    <item>
      <title>Re: SAS 9.2: Macro variable with quotes is not working.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107890#M30078</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Macro variables doesn't resolve within single quotes.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2012 10:34:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107890#M30078</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2012-07-16T10:34:33Z</dc:date>
    </item>
    <item>
      <title>Re: SAS 9.2: Macro variable with quotes is not working.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107891#M30079</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote" modifiedtitle="true"&gt;
&lt;P&gt;/**&amp;nbsp; Not Working with macro variable **/&lt;/P&gt;
&lt;BLOCKQUOTE class="jive-quote"&gt;
&lt;P&gt;***************************************************************************************************&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;filename DIRLIST pipe 'dir "&amp;amp;path1." /B';&lt;/P&gt;
&lt;P&gt;data dirlist ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;================================================================================================&lt;/P&gt;
&lt;P&gt;/** Result **/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;1695&amp;nbsp; %let path1 = C:\work\test\final output;&lt;/P&gt;
&lt;P&gt;1696&lt;/P&gt;
&lt;P&gt;1697&amp;nbsp; filename DIRLIST pipe 'dir "&amp;amp;path1." /B';&lt;/P&gt;
&lt;P&gt;1698&amp;nbsp; data dirlist ;&lt;/P&gt;
&lt;P&gt;1699&lt;/P&gt;
&lt;P&gt;1700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length buffer $256 ;&lt;/P&gt;
&lt;P&gt;1701&lt;/P&gt;
&lt;P&gt;1702&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile dirlist length=reclen ;&lt;/P&gt;
&lt;P&gt;1703&lt;/P&gt;
&lt;P&gt;1704&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input buffer $varying256. reclen ;&lt;/P&gt;
&lt;P&gt;1705&amp;nbsp; run ;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;NOTE: The infile DIRLIST is:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unnamed Pipe Access Device,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROCESS=dir "&amp;amp;path1." /B,RECFM=V,LRECL=256&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Stderr output:&lt;/P&gt;
&lt;P&gt;File Not Found&lt;/P&gt;
&lt;P&gt;NOTE: 0 records were read from the infile DIRLIST.&lt;/P&gt;
&lt;P&gt;NOTE: The data set WORK.DIRLIST has 0 observations and 1 variables.&lt;/P&gt;
&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Double up on the double quotes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let path1 = C:\work\test\final output;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filename DIRLIST pipe "dir ""&amp;amp;path1"" /B";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think this is documented in the Concepts Guide somewhere, but it's been a while since I've read it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, for this scenario, I've gotten good results from DOPEN/DREAD.&amp;nbsp; In general, I prefer to use portable code when I can.&amp;nbsp; Check out the sample code here:&amp;nbsp; &lt;A href="http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000209687.htm" title="http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000209687.htm"&gt;http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000209687.htm&lt;/A&gt;.&amp;nbsp; It's easily converted to a data step.&amp;nbsp; The only downside is no support for wildcards in DOPEN, but this is easily supported with prxmatch.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Untested:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dirlist;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; length filename $200;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rc=filename("dir","c:\temp");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; did=dopen("dir");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i=1 to dnum(did);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename=dread(did,i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if prxmatch("/^test.*\.sas/io",filename) then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; did=dclose(did);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rc=filename("dir");&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This would keep all the files named test*.sas in c:\temp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I admit the prxmatch syntax isn't quite as straightforward as the dir command's wildcards, but it's not hard once you get used to it.&amp;nbsp; Plus you don't need it if you want to read the entire directory (your example doesn't use wildcards in the dir command).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It may look like a lot of code but it performs quite well, esp. since you're not spawning an external process to execute the pipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTH,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2012 11:32:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107891#M30079</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2012-07-16T11:32:24Z</dc:date>
    </item>
    <item>
      <title>Re: SAS 9.2: Macro variable with quotes is not working.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107892#M30080</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Scott. &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Double up on the double quotes is working fine&lt;/SPAN&gt;. Thanks a lot for your help&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2012 04:00:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/SAS-9-2-Macro-variable-with-quotes-is-not-working/m-p/107892#M30080</guid>
      <dc:creator>1239</dc:creator>
      <dc:date>2012-07-17T04:00:37Z</dc:date>
    </item>
  </channel>
</rss>

