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'
。
在 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'
。