A best practice in SPSS is to open and save all files with syntax. Like so, it can be easily seen which syntax was run on which data. One could use the syntax generated by for this but there’s a much shorter and better option.
Disadvantages of the Default Syntax
- If you open and save several files, the total amount of syntax will be rather large. Especially if you write (rather than paste) your syntax, this may be a bit annoying even though you can copy-paste the folder specification
- If you move your project to a different folder, you’ll need to correct all paths in order for them to be valid again
Shortening the Syntax
cd ‘C:\Documents and Settings\Work\Projects 2012\December\Some Customer’.*Open data file.
get file ‘Survey data.sav’.
How Does it Work?
CD command sets a default directory. Whenever you open or save a file, it will be done from/to this directory. In case you’re not sure what your default directory is, runSHOW DIRECTORY.In subsequent commands, you only have to type the file name, which is technically a relative path. Especially when you open or save multiple files, you’ll need less syntax. More importantly, if you move your project to a different folder, you’ll need to adjust only a single line of syntax (the cdcommand, that is). Especially when a project involves multiple syntax files, this may prove a major advantage, especially when combined with INSERT.Using Subfolders
Whenever you use relative rather than absolute paths, SPSS quietly prefixes them with the default directory. When you’d like to access a file in a subdirectory of the default directory, you can specify only the subdirectory and the file name.
For example, if your default directory is C:\project, then GET FILE 'data\data_file.sav'.will open data_file.sav from C:\project\data.
Final Notes
CD applies to all files such as
- data files (SPSS, Excel or any other format)
- SPSS output files
- SPSS syntax files when using INSERT
- SPSS chart templates (only in SPSS version 19 onwards)
except table templates (“SET TLOOK …”). I find this very annoying and I don’t see why this hasn’t fixed ages ago…

