我是BCP的新手。我想从Powershell启动bcp.exe实用程序,但是它挂起了。相同的命令可以正常运行。我正在使用Invoke-Expression
启动bcp.exe。
我能够启动SQLCMD.exe,没有任何问题。
这是我的能力。
Set-Location -Path "C:\Program Files\Microsoft SQL Server\110\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。
我在做什么错?任何想法或指针。
答案 0 :(得分:0)
在这里问之前,我应该搜索更多。 This个帖子对我有所帮助。我能够使用Start-Process命令从powershell运行BCP。
$bcp = 'c:\Program Files\Microsoft SQL Server\110\Tools\Binn\bcp.exe'
$arglist = @(
#add all arguments.
)
Start-Process -FilePath $bcp -ArgumentList $arglist