Solo publico esto aquí como un ejemplo para que otros ahorren el tiempo que acabo de perder.
archivo test_setvar.sql contiene la siguiente
-- :r test_setvar.sql
:reset
:setvar Name "filename"
print '$(Name)'
-- :setvar OutName '$(Name)' -- NO wont work
-- :out $(OutName).txt
:r $(Name).sql -- filename.sql exists and prints "Hello World"
:out $(Name).txt -- filename.txt is created
go
:out stdout
Dicho claramente here.
Nota: Las comillas dobles necesarios para las cadenas de múltiples partes y campos con: Fuera Por ejemplo
:out "string bit"$(field1)"string bit2"$(field2)
Las comillas simples envolver no trabajará con: para esto.
Pero ... Enviando comillas dobles o simples es necesario dentro de una consulta.
where col.name LIKE "%" + "$(SEARCH_STRING)" + "%"