Invoke-Sqlcmd vs sqlcmd utility
Invoke-Sqlcmd can run many of the scripts which can be run with the sqlcmd utility. However, Invoke-Sqlcmd runs in the PowerShell environment which is different than the command prompt environment sqlcmd runs in. Invoke-Sqlcmd has been modified to work in a PowerShell environment.
Not all the sqlcmd commands can be used in Invoke-Sqlcmd. Commands which are not available include the below:
Invoke-Sqlcmd -Query "PRINT N'abc';" -Verbose
Not all the sqlcmd parameters are required in the PowerShell environment. For example, PowerShell formats all output from cmdlets, so sqlcmd parameters specifying formatting options are not implemented in Invoke-Sqlcmd.