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