Если вы не ограничены опцией SAS NOXCMD (например, SAS Enterprise Guide, включающий SASApp - сервер Workspace в его конфигурации по умолчанию, где администратор не открыл его), тогда я бы предложил загрузить и использовать Microsoft Sysinternals Disk Usage(DU) через нулевой шаг данных SAS с использованием имени файла канала.Вот пример кода SAS:
filename du pipe "du -q c:\SAS\EBIEDIEG\Lev1\SASApp";
data work.diskusage;
infile du;
input @;
put _infile_;
if ( _infile_ =: 'Size:' ) then do;
sizeInBytes = input(scan(_infile_,2,' '), comma32.);
output;
end;
input;
run;
Использование диска Microsoft Sysinternals (DU) похоже на знакомую команду du в UNIX.Вы можете скачать Sysinternals DU и просмотреть документацию по адресу http://technet.microsoft.com/en-au/sysinternals/bb896651. У него есть параметр -l, поэтому вы можете указать, насколько глубоко он должен идти.
Если вы ограничены параметром NOXCMD, вы можете использоватьсерия циклов с использованием функций SAS DOPEN / DREAD / FILENAME / FOPEN / FINFO / FCLOSE / DCLOSE для ручного обхода дерева каталогов и добавления размеров файлов.Он будет включать в себя гораздо больше кода, но должен работать в среде NOXCMD.Если вы хотите использовать этот метод, хорошей отправной точкой будет документация SAS для DOPEN по адресу http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000209538.htm, где вы также сможете найти документацию и примеры для других функций.