Ich versuche, das Makro unten zu ändern, um einen Makroparameter als 'Speicherort' Argument für einen Befehl dir zu akzeptieren. Ich kann jedoch nicht erreichen, dass es aufgrund des Problems mit verschachtelten Anführungszeichen korrekt aufgelöst wird. Die Verwendung von% str (% ') funktioniert nicht, auch nicht aus irgendeinem Grund.Verwenden von SAS-Makro zum Pipe einer Liste von Dateinamen aus einem Windows-Verzeichnis
Das Makro funktioniert gut, wenn der Dateipfad keine Leerzeichen (z. B. C: \ temp \ withnospace) wie die mittleren Anführungszeichen nicht benötigt wird. Ich brauche dieses Makro jedoch für Dateipfade mit Leerzeichen (zB 'C: \ temp \ with space \').
Bitte helfen!
%macro get_filenames(location)
filename pipedir pipe "dir &location. /b " lrecl=32767;
data filenames;
infile pipedir truncover;
input line $char1000.;
run;
%mend;
%get_filenames(C:\temp\) /* works */
%get_filenames('C:\temp\with space') /* doesnt work */
Obwohl dies die Frage nicht wirklich beantwortet, ist dieser Code weit überlegen, da er in Umgebungen verwendet werden kann - und erfüllt den gleichen Zweck. danke ... –