SQL Powershell 中的 BCP 挂起

SQL BCP within Powershell hangs

我是 BCP 新手。我想从 Powershell 启动 bcp.exe 实用程序,但它挂起。相同的命令在命令提示符下运行良好。我正在使用 Invoke-Expression 启动 bcp.exe。

我可以毫无问题地启动 SQLCMD.exe。

这是我的 powershell。

Set-Location -Path "C:\Program Files\Microsoft SQL Server0\Tools\Binn"

SQLCMD.EXE -b -E -S CORPSYSSQLDEV -d CORPSYSDM -Q "select top 10 * from t_test"

$psCommand = "bcp.exe ""testDB.dbo.t_test"" in  ""C:\temp\test\testFile20180919.txt"" -c -t""\t"" -T -S ""TESTSQLDEV"" -e c:\temp\NoahFolder\error.csv"

Write-Host $psCommand

Invoke-Expression $psCommand

这是 $psCommand 的结果。

bcp.exe "testDB.dbo.t_test" in  "C:\temp\test\testFile20180919.txt" -c -t"\t" -T -S "TESTSQLDEV" -e c:\temp\test\error.csv

在命令提示符下可以正常工作,但是当我 运行 powershell 脚本卡住时。

我可以从 powershell 正常启动 SQLCMD.exe。

我做错了什么?任何想法或指示。

在这里问之前我应该​​多搜索一下。 This post 帮助了我。我能够使用 Start-Process 命令从 powershell 运行 BCP。

$bcp = 'c:\Program Files\Microsoft SQL Server0\Tools\Binn\bcp.exe'
$arglist = @(
   #add all arguments.
)
Start-Process -FilePath $bcp -ArgumentList $arglist