Как мы можем передать переменную в команде oscmd в sas

Я использую команду oscmd для запуска некоторых операций операционной системы из sas, но хочу сделать ее универсальной, передав переменную в команде oscmd. Я использую код ниже:%global name =skstar; filename oscmd pipe "python test.py --inputvar=&name.";Значение переменной name не заменяется в команде.

РЕДАКТИРОВАТЬ: вышеуказанная часть работает сейчас, это просто ошибка цитаты. но хотел знать, как прервать выполнение команды oscmd cli, если значение параметра передано неверно

1 ответ

Решение

Возможно , ваш шаг данных неверен, но вы не пишете туда. Работает нормально:

%let name=test words;
filename oscmd pipe "echo &name.";

data _null_;
 infile oscmd;
 input;
 put _infile_;
run;

/*log:
NOTE: The infile OSCMD is:
      Unnamed Pipe Access Device,
      PROCESS=echo test words,RECFM=V,LRECL=32767

test words
NOTE: 1 record was read from the infile OSCMD.
      The minimum record length was 10.
      The maximum record length was 10.
NOTE: DATA statement used (Total process time):
      real time           0.18 seconds
      cpu time            0.03 seconds


*/
Другие вопросы по тегам