Как можно использовать SAS для определения размера каталога в МБ (Windows)? - PullRequest
2 голосов
/ 13 июня 2011

Ищу какой-то (эффективный) код для определения размера каталога / папки в Windows XP с использованием SAS 9.1.3.

1 Ответ

6 голосов
/ 14 июня 2011

Если вы не ограничены опцией 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, где вы также сможете найти документацию и примеры для других функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...