代码之家  ›  专栏  ›  技术社区  ›  ProgSky

powershell中的sql bcp挂起

  •  0
  • ProgSky  · 技术社区  · 6 年前

    我是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脚本时,它就卡住了。

    enter image description here

    我可以从powershell fine启动sqlcmd.exe。

    我做错什么了?任何想法或建议。

    1 回复  |  直到 6 年前
        1
  •  0
  •   ProgSky    6 年前

    我在问这个问题之前应该多找些。 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