Additional SQL Server features and topics not covered by specific categories
AFAIK, The -s switch takes the delimiter literally. So -s"\t" means backslash + t, not an actual tab character. "\t" in PowerShell is just the characters \ and t. PowerShell's escape for a tab is "`t" (backtick-t), not backslash-t.
The workaround with | worked because you forced a delimiter that both PowerShell and sqlcmd can reliably treat as plain text (|), then replaced it with a real tab using PowerShell’s "t"` escape, which is interpreted as a tab.
Try the following
sqlcmd -S SQL2K12 -d Admin -E -s "`t" -W -Q "SELECT ...;"
If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.
hth
Marcin