如何检测在.Net进程中运行BCP的输出?

时间:2018-08-06 14:56:14

标签: .net cmd process console-application bcp

很抱歉,如果这是一个基本问题,但我对使用.Net中的Process是新手。

我正在尝试从.Net进程运行BCP命令。我编写的代码将启动命令窗口并成功运行命令,但是当我单步执行代码时,尽管我已验证BCP命令已完成,但该过程从未完成。

Dim proc As New System.Diagnostics.Process
proc.StartInfo.FileName = "cmd.exe"             
proc.StartInfo.WorkingDirectory = "C:\Program Files\Microsoft SQL Server\100\Tools\Binn" 
proc.StartInfo.UseShellExecute = False
proc.StartInfo.RedirectStandardInput = True
proc.StartInfo.RedirectStandardOutput = True

proc.StartInfo.Arguments = "BCP Command"
proc.Start()
proc.StandardInput.WriteLine("BCP Command")
Dim result As String = proc.StandardOutput.ReadToEnd()

If proc IsNot Nothing And Not proc.HasExited Then
    proc.WaitForExit()
End If

我已经尝试过对该代码进行一些迭代,但是我看到的大多数示例看起来都与我所拥有的相似。目前,我正在处理BCP命令的输出。我的命令将输出直接发送到日志文件,因此我认为这可能是问题所在,但奇怪的是,如果我逐步执行我从未尝试过的代码...

Dim result as String = proc.StandardOutput.ReadToEnd()

我没有收到任何错误,但是接下来的几行从不介入。同样,这可能会回到输出问题。任何人有任何建议或看到我在这里忽略的东西吗?

0 个答案:

没有答案