Копирование файлов из одного каталога в другой в SAS EG не работает - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь скопировать файлы из одного каталога в другой в SAS EG, но это не работает.

Основная идея c здесь состоит в том, чтобы преобразовать файл .xlsm в файл .xlsx.

%sysexec( copy "&path.\excel1.xlsm"
               "&path.\excel1.xlsx" ) ;

Я не получал ошибок в SAS EG, но ничего не происходит (файл не копируется), кто-нибудь знает причину?

1 Ответ

0 голосов
/ 06 августа 2020

Убедитесь, что в вашем сеансе SAS включена опция XMCD.

XCMD              Enables the X command in SAS.

Вы можете использовать функцию PRO C OPTIONS или GETOPTION (), чтобы увидеть текущую настройку. Этот параметр должен быть установлен при запуске сеанса, поэтому вам может потребоваться изменить сервер, к которому вы подключаетесь с помощью Enterprise Guide, на сервер с включенной опцией (или изменить конфигурацию сервера).

Также убедитесь, что что используемые вами команда и путь будут работать на сервере, на котором выполняется ваш код SAS. Вы можете посмотреть на некоторые автоматические c макропеременные, такие как SYSSCP, SYSHOSTNAME и SYSHOSTINFO, чтобы узнать, в какой операционной системе работает SAS.

22    %put &=sysscp &=syshostname &=syshostinfolong ;
SYSSCP=WIN SYSHOSTNAME=XXXXXX SYSHOSTINFOLONG=X64_10PRO WIN 10.0.18362  Workstation

Если у вас все еще есть проблемы, вы также можете использовать другой метод для запустите вашу команду, чтобы вам было легче увидеть сообщения, которые может генерировать операционная система. Например, используя механизм имени файла PIPE.

data _null_;
  infile %sysfunc(quote(copy "&path.\excel1.xlsm" "&path.\excel1.xlsx" 2>&1)) pipe;
  input;
  put _infile_;
run;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...