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, run
SHOW 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 cd
command, 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 tablelooks (“SET TLOOK ...”). I find this very annoying and I don't see why this hasn't fixed ages ago...

Thanks for reading!
THIS TUTORIAL HAS 16 COMMENTS:
By Jeff Boggs on December 14th, 2017
Thank you. For now I've just entered the two directories using the CD command, and comment out the directory I am not using.
By James McMahon on January 16th, 2018
Do you know if there is a way to return to the default directory, without explicitly specifying it?
By Ruben Geert van den Berg on January 18th, 2018
Hi James!
There's 2 options:
-Run PRESERVE right at the start of your session, change the dir and run RESTORE in order to return to the preserved settings -which include the dir. This is not really nice because RESTORE restores all other settings as well and if you need more than 1 PRESERVE, things can become complicated.
A much cleaner, more fool-proof option is the following syntax but this does require Python:
begin program.
import spss,spssaux
spss.Submit(r"cd '%s'."%spssaux.getSpssInstallDir())
end program.
Hope that helps!
By Tolga on October 9th, 2019
Hello,
Is it possible to get current directory from a .SPS syntax file.
I have a .CSV file for data and a .SPS file data file information.
By Tolga on October 9th, 2019
Is it possible to get current directory from .SPS file ?
I have a .CSV file for data and .SPS file for data file information in the same .ZIP file. In the .SPS file, I have a command for importing .CSV file which is in the same directory with .SPS file. Is it possible to make this .CSV file path relative ?