Как использовать папки с пробелами в SAS x «копировать …»?

#sas #copy

#sas #Копировать

Вопрос:

В sas мне нужно скопировать файл из одного места в другое, но этот файл находится в папке с пробелами, что создает проблемы.

Вот что я хочу сделать:

 x "copy \aaab c deee.pdf \fffggg.pdf";
  

из-за пробелов между b c и d это не работает.

Я знаю, что могу сделать

 x 'copy \aaa"b c d"eee.pdf \fffggg.pdf';
  

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

Есть ли способ избежать двойных кавычек в инструкции copy? например, что-то вроде этого (за исключением%, которые не работают)

 x "copy \aaa%"b c d%"eee.pdf \fffggg.pdf";
  

Редактировать
Я также пробовал cats:

 x cats("copy \aaa",'"b c d"',"eee.pdf \fffggg.pdf");
  

Комментарии:

1. несколько отличных ответов в этой теме!

Ответ №1:

Замените x на %sysexec , и вам не понадобятся кавычки.

 %sysexec copy "\aaab c deee.pdf" "\fffggg.pdf";
  

Ответ №2:

Удвойте свои кавычки!

 x "copy ""\aaab c deee.pdf"" \fffggg.pdf";
  

Ответ №3:

Используйте QUOTE() функцию. Это правильно удвоит внутренние кавычки в строке, которую вы пытаетесь заключить в кавычки.

 x %sysfunc(quote(copy "\aaab c deee.pdf" "\fffggg.pdf"));