Powershell中的BCP命令

时间:2018-10-18 19:15:44

标签: bash powershell bcp

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

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

但是,当我在Powershell中运行同一命令时,出现错误:参数列表中缺少参数

我还尝试了在Powershell中不执行命令:

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

但是,-t标记不起作用,并且终止符未包含在XML中。

1 个答案:

答案 0 :(得分:2)

在将参数传递给外部命令时,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'