Tôi đang cố sửa đổi macro dưới đây để chấp nhận thông số macro làm đối số 'vị trí' cho lệnh dir. Tuy nhiên tôi không thể giải quyết nó một cách chính xác do vấn đề trích dẫn lồng nhau. Sử dụng% str (% ') không hoạt động, không trích dẫn các hàm cho một số lý do.Sử dụng SAS Macro để tạo danh sách tên tệp từ thư mục Windows
Macro sẽ hoạt động tốt khi tệp filepath có không có dấu cách (ví dụ: C: \ temp \ withnospace) vì không cần dấu ngoặc kép ở giữa. Tuy nhiên, tôi cần macro này để làm việc cho các tập tin đính kèm với các không gian (ví dụ: 'C: \ temp \ with space \').
Vui lòng trợ giúp!
%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 */
mặc dù điều này không thực sự trả lời câu hỏi, mã này vượt trội hơn nhiều so với nó có thể được sử dụng trên các môi trường - và hoàn thành cùng một mục đích. thankyou ... –