首页 > 解决方案 > 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 中不包含终止符。

标签: bashpowershellbcp

解决方案


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

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

& bcp @params

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


推荐阅读