很抱歉,如果这是一个基本问题,但我对使用.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()
我没有收到任何错误,但是接下来的几行从不介入。同样,这可能会回到输出问题。任何人有任何建议或看到我在这里忽略的东西吗?