How to use a relative path in sqlcmd script
If you want a relative path, just use relative path notation.
:SETVAR ScriptDir "../../"

That will set your ScriptDir to two directories higher than wherever you invoked sqlcmd from.

or 
:SETVAR ScriptDir "moo/oink/bah/"

That will look for scripts in the moo/oink/bah subdirectory of wherever you invoked sqlcmd from.