-
Notifications
You must be signed in to change notification settings - Fork 22
/
dirfpq.sas
37 lines (33 loc) · 1.88 KB
/
dirfpq.sas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*<pre><b>
/ Program : dirfpq.sas
/ Version : 1.1
/ Author : Roland Rashleigh-Berry (http://www.datasavantconsulting.com/roland/)
/ Date : 26-Jun-2011
/ Purpose : Function-style macro to return a list of full-path quoted members
/ of a directory on a Windows platform according to the file pattern
/ you supply.
/ SubMacros : %qreadpipe
/ Notes : Members are shown with the full path names in double quotes. If a
/ file name contains spaces then this will be correctly quoted. You
/ MUST give the full file pattern and not just the directory as this
/ does not use the DIR command to act on the directory but rather
/ expands the file pattern.
/ Usage : %let dirlist=%dirfpq(C:\utilmacros); %*- NO GOOD -;
/ %let dirlist=%dirfpq(C:\utilmacros\*); %*- GOOD -;
/ %let dirlist=%dirfpq(C:\utilmacros\*.sas); %*- GOOD -;
/ %put %dirfpq(d:\test\*.gif);
/===============================================================================
/ PARAMETERS:
/-------name------- -------------------------description------------------------
/ dir (pos) Directory path name with file pattern (no quotes)
/===============================================================================
/ AMENDMENT HISTORY:
/ init --date-- mod-id ----------------------description------------------------
/ rrb 26Jun11 Remove quotes if supplied (v1.1)
/===============================================================================
/ This is public domain software. No guarantee as to suitability or accuracy is
/ given or implied. User uses this code entirely at their own risk.
/=============================================================================*/
%macro dirfpq(dir);
%unquote(%qreadpipe(echo off & for %nrstr(%f) in (%sysfunc(dequote(&dir))) do echo "%nrstr(%f)"))
%mend dirfpq;