带有CMD选项“ / c”的WaitForExit

时间:2018-07-02 19:19:54

标签: vb.net cmd

我已经在VB中编写了代码来运行CMD命令,其中输出存储到文本文件中。程序需要此输出,因此程序需要等到CMD命令完成后才能继续。我正在使用

Dim wait As Process = Process.Start(psi)
wait.WaitForExit()

为确保在代码继续之前退出进程,但现在我已经完成了,进程信息中的“ / c”选项不再起作用。流程信息如下:

Dim psi As New ProcessStartInfo With {
    .FileName = "Cmd",
    .Arguments = "/c " & completedCom & " > " & oPath
}

我不明白为什么“ / c”选项会突然失败。

1 个答案:

答案 0 :(得分:0)

空格将是一个问题的示例。在命令周围使用引号可以帮助解决问题:

Dim psi As New ProcessStartInfo With {
    .FileName = "Cmd",
    .Arguments = "/c """ & completedCom & """ > """ & oPath & """"
}

调用process的首选方法是直接调用exec,而不是启动cmd。在这种情况下,您将不得不异步捕获标准输出并将其写入文件。