У меня есть следующая часть функции, которая сводит меня с ума. Как видите, я создаю путь и имя файла для массового копирования данных таблицы в. Когда я запускаю это в скрипте PowerShell, я получаю следующую ошибку:
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe: unknown option 1
usage: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe
Однако, когда я копирую строку вывода, полученную из команды Write-host, и вставляю ее в командную строку, я могу выполнить ее очень хорошо. Что дает?
ForEach($table in $db.Tables | where {$_.IsSystemObject -eq $false})
{
$fullName = "$db.$table"
If($scriptTables -contains $fullName)
{
$fullFilePath = (pwd).path + "\$db.$table" + ".dat"
$copyExecString = "$db.$table out `"$fullFilePath`" -E -N -Sserver1\instance -Uxyz -Pxyz > Output.txt"
& bcp "$copyExecString" #Invoke-Expression "bcp $copyExecString"
Write-host "bcp $copyExecString"
}
}
Пример вывода:
bcp [DB].[dbo].[Table] out "C:\Development\ScriptDemoData\[DB].[dbo].[Table].dat" -E -N -Sserver1\instance -Uxyz -Pxyz > Output.txt