SQL Server: use parameter in CREATE DATABASE

You will have to use dynamic SQL

SELECT @sql = 'CREATE DATABASE TestDB ON PRIMARY ( NAME = ''TestDB_Data'', 
 FILENAME = ' + quotename(@DataFilePath) + ') LOG ON ( NAME = ''TestDB_Log'', 
FILENAME = ' + quotename(@LogFilePath) + ')'

EXEC (@sql)

Try using SQLCMD mode. In SSMS, under the Query menu, choose SQLCMD Mode, then run this script.

:SETVAR DataFilePath N'C:\ProgramData\Gemcom\TestDB.mdf'    
:SETVAR LogFilePath N'C:\ProgramData\Gemcom\TestDB.ldf'

USE master
Go
CREATE DATABASE TestDB
ON 
PRIMARY 
( NAME = N'TestDB_Data', FILENAME = $(DataFilePath) )
LOG ON 
( NAME = N'TestDB_Log', FILENAME = $(LogFilePath)  )

GO