我正在尝试在vb.net程序中运行dos命令并捕获输出.我有以下代码:
Dim CMDServer As Diagnostics.ProcessStartInfo
Dim CMDReply As Diagnostics.Process
CMDServer = New Diagnostics.ProcessStartInfo
CMDServer.FileName = "cmd.exe"
CMDServer.UseShellExecute = False
CMDServer.RedirectStandardOutput = True
CMDServer.CreateNoWindow = True
CMDServer.Arguments = "/C " + command
CMDReply = Process.Start(CMDServer)
Dim Reply As String = CMDReply.StandardOutput.ReadToEnd()
Run Code Online (Sandbox Code Playgroud)
如果command是有效的dos命令,则代码会成功运行,并且我在Reply中获得输出.如果命令没有输出(例如:cd \),则回复为空.问题是即使命令无效,Reply也为null.如何捕获错误,如"命令未被识别为内部或外部命令......","系统找不到指定的路径......"等.请帮帮我.谢谢..
错误消息来自名为的不同输出流StandardError.只需使用StreamReader或直接读取.当然,RedirectStandardError您的ProcessStartInfo实例的-Property 必须设置为True.
此外,还有一个ExitCode-Property,它在程序完成后返回程序的ExitCode.0意思是'成功'.其他错误代码可以在MSDN文档中找到.以下是常见退出代码的列表.例如,2手段The system cannot find the file specified..
| 归档时间: |
|
| 查看次数: |
1337 次 |
| 最近记录: |