Как передать переменную в команду bcp в сценарии powershell - PullRequest
0 голосов
/ 03 февраля 2012

Я создаю строку, которую я хотел бы передать команде bcp из скрипта PowerShell. Вот код, который создает строку

$fullFilePath = (pwd).path + "\$db.$table" + ".dat"
$copyExecString = "bcp $db.$table out $fullFilePath -E -N -Slocalhost"

Я могу вставить результат Write-host этого в командную строку, и он работает нормально, но не будет работать следующим образом:

$fullFilePath = (pwd).path + "\$db.$table" + ".dat"
$copyExecString = "$db.$table out $fullFilePath -E -N -Slocalhost"
bcp $copyExecString

Я также пытался использовать символ амперсанда перед вызовом команды bcp, но безрезультатно

Любые идеи о том, как добиться этой функциональности, будут высоко оценены

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Вместо одной строки токенизируйте ее, разделив аргументы пробелами:

& bcp $db.$table out $fullFilePath -E -N -Slocalhost
1 голос
/ 03 февраля 2012

вы можете использовать Invoke-Expression командлет, чтобы гарантировать, что вы анализируете то, что вы хотите выполнить до выполнения:

...