在 SSMS 中使用 BCP 和 xp_cmdshell 以及 T-SQL。 "The syntax of the command is incorrect"

Using BCP and xp_cmdshell with T-SQL inside SSMS. "The syntax of the command is incorrect"

所以,我正在研究 BCP 以更好地了解它,并且 运行 遇到了一个我无法解决的问题。我收到一个错误,"The Syntax of the command is incorrect"。

我已经测试了正确构建的完整文件路径,以及正确完成的 select 查询本身。有什么想法吗?

我使用的代码是:

DECLARE @fileName varchar(128)
DECLARE @filePath varchar(128)
DECLARE @completeFilePath varchar(128)
DECLARE @sqlCmd varchar(4000)
DECLARE @BCPSwitches VARCHAR(64)
SET @filePath = 'xxxxxx'

SELECT TOP 5 [EMP]
  ,[SSNO]
  ,[NAME]
  ,[STREET]
INTO #ParticipantIdentifiers
FROM xxxxxxxxx

SET @BCPSwitches = '-w -T -t |'
SET @fileName = 'xxxxx.txt'
SET @completeFilePath = @filePath + @fileName
SET @sqlCmd = 'bcp "SELECT * FROM #ParticipantIdentifiers" queryout "'+ @completeFilePath + '" ' + @BCPSwitches 

EXEC DemoDB..xp_cmdshell @sqlCmd

我认为终结符“|” -t 之后(在@BCPSwitches 中)也需要用引号引起来,因为 shell 可能会将其解释为输出管道。