powershell 中的 BCP 命令

BCP command in powershell

在 bash 中,我使用以下 bcp 命令创建 XML 格式:

bcp DATABASE.[UserData] format nul -c -x -f F:\UsageExports\UserData.xml -t, -T

但是,当我在 Powershell 中 运行 执行相同的命令时,出现错误:Missing argument in parameter list

我也试过不在 Powershell 中执行命令:

bcp DATABASE.[UserData] format nul -c -x -f F:\UsageExports\UserData.xml -t -T

但是,-t 标签不起作用,终止符不包含在 XML。

在将参数传递给外部命令时,PowerShell 可能相当挑剔。通常处理这种情况的最好方法是用参数定义一个数组,然后在命令中 splat 该数组:

$params = 'DATABASE.[UserData]', 'format', 'nul', '-c', '-x',
          '-f', 'F:\UsageExports\UserData.xml', '-t,', '-T'

& bcp @params

在您的情况下,问题可能是由参数 -t 的参数 , 引起的。 PowerShell 中的逗号用于构造数组。我猜 -t, -T 被解释为 @('-t', '-T'),然后在调用外部命令时被破坏为 '-t -T'