SQLCMD Mode in SSMS and @@variable expansion
Unless I'm missing something, doesn't this work, without the apostrophes?:

:setvar dbNotServer @@servername
SELECT $(dbNotServer) AS worked


It returns SERVER\INSTANCE for me in SQLCMD mode through SSMS.

Edit 02/12/2018
After coming across my answer to another question, and reviewing, I can see the issue, I believe it boils down to this:

:setvar dbNotServer @@servername
print '$(dbNotServer)'


This outputs @@servername, and the desired output is the value of @@servername.
The only way I've seen to do this is in the accepted answer here