1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
* Применяем заданный макрос ко всем файлам, которые перечислены в файле .sav.

DATA LIST FIXED /id 1-2 (F) fname 3-22 (A).
BEGIN DATA
1 employee data.sav
2 Fat surfactant.sav 
3 flying.sav
4 Glass strain.sav
END DATA.
LIST.
SAVE OUTFILE='c:\\temp\\list file names.sav'.

* Вот некоторый макрос, который нас интересует.
*//////////.
DEFINE !count(file=!CMDEND)
COMPUTE xyz=1.
SUMMARIZE
  /TABLES=xyz
  /FORMAT=NOCASENUM TOTAL
  /TITLE=!QUOTE(!CONCAT('Число наблюдений в файле ',!file)) 
  /MISSING=VARIABLE
  /CELLS=COUNT .
!ENDDEFINE.
*//////////.

/* Записываем синтаксис, который будет поочерёдно загружать каждый файл, упомянутый в */
/* "list file names.sav" и вызывать макрос !count	*/

GET FILE='c:\\temp\\list file names.sav'.
STRING fn(A50).
COMPUTE fn=CONCAT("c:\\Program Files\\SPSS\\",fname).
WRITE OUTFILE='c:\\temp\\do all files.sps' 
	/'GET FILE="' fn '".'
	/'!count file='fname'.'.
EXECUTE.
SET MPRINT=yes.

* Запускаем только что созданный синтаксис.
INCLUDE 'c:\\temp\\do all files.sps'.