The xp_cmdshell executes an OS command so basically if you execute a SQL script using xp_cmdshell, it tries to execute the SQL statements in command prompt.
If you want to run a SQL script, try executing
SQLCMD[
^] using xp_cmdshell and give the sql script to sqlcmd as a parameter.
So something like:
SET @scriptfile = 'sqlcmd -i c:\users\fith.sql' -S... -U...