Команда BCP в powershell - PullRequest
       10

Команда BCP в powershell

0 голосов
/ 18 октября 2018

В 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 голосов
/ 18 октября 2018

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', когда вызывается внешняя команда.

...