Macros 在sas宏文件名管道中使用引号
我正在使用以下使用文件名管道的宏。但是出现了一个错误,显示无效的选项名“dir”,等等。我怀疑这可能是由于在定义文件名和管道时引用了引号。我想它承认这是一种选择。我试图删除该引号,删除了%bquote并只使用了双引号,但仍然不断出现错误 我正在使用Windows,但也将在Linux上远程运行它。任何想法都将不胜感激Macros 在sas宏文件名管道中使用引号,macros,sas,filenames,dir,sas-macro,Macros,Sas,Filenames,Dir,Sas Macro,我正在使用以下使用文件名管道的宏。但是出现了一个错误,显示无效的选项名“dir”,等等。我怀疑这可能是由于在定义文件名和管道时引用了引号。我想它承认这是一种选择。我试图删除该引号,删除了%bquote并只使用了双引号,但仍然不断出现错误 我正在使用Windows,但也将在Linux上远程运行它。任何想法都将不胜感激 %macro setprogvar(dateval); %global date; %let date=&dateval; %put &date;
%macro setprogvar(dateval);
%global date;
%let date=&dateval;
%put &date;
%put &dateval;
%let filepath = %bquote("C:\Research\SASDataSets\bulk all data &date");
filename CDR_Bulk pipe "dir &filepath /a:-d-h-s /b /s";
%mend setprogvar;
%setprogvar(20100331);
***LOG************
1 filename CDR_Bulk pipe "dir &filepath /a:-d-h-s /b /s";
---
23
ERROR 23-2: Invalid option name dir.
1 ! filename CDR_Bulk pipe "dir &filepath /a:-d-h-s /b /s";
-
23
ERROR 23-2: Invalid option name a.
尝试将宏中的%bquote更改为%str() %Str()在宏编译时工作,应该屏蔽双引号
HTHfilepath宏变量需要用双引号括起来,因为它包含空格。但由于字符串是双引号,所以需要双引号 filename CDR_Bulk pipe "dir ""&filepath"" /a:-d-h-s /b /s";
文件名CDR_批量管道“dir”和文件路径“/a:-d-h-s/b/s”;非常感谢克里斯和昆汀!这就成功了。现在我要讨论另一个问题,因为我要运行这个unix…当然,谢谢。当我试图点击向上箭头时,我没有意识到点击勾号会起作用。