在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中。
答案 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'
。