0
我想从我的Vb.Net应用程序运行批处理文件。 VS 2010 targetting .Net 4.从.Net调用的批处理文件不运行
它在Windows XP下正常工作。
在Windows 8下,我按预期得到了UAC提示,并且我看到命令窗口会短暂出现,但它会立即消失,批处理文件中的任何命令似乎都不会执行。
我试着用一个pause
命令替换批处理文件,但是窗口仍然没有等待输入而消失。 这里是我的代码:
processStartInfo = New System.Diagnostics.ProcessStartInfo()
processStartInfo.FileName = Script ' batch file name
If My.Computer.Info.OSVersion >= "6" Then ' Windows Vista or higher
' required to invoke UAC
processStartInfo.Verb = "runas"
End If
processStartInfo.Arguments = Join(Parameters, " ")
processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal
processStartInfo.UseShellExecute = True
process = System.Diagnostics.Process.Start(processStartInfo)
将“暂停”添加到.bat文件的末尾,以便您可以阅读错误消息。永远不要忘记检查Process.ExitCode,以便诊断完整的故障。 – 2014-09-18 16:34:30
@Hans正如我在问题中所述,我用单个暂停命令替换了整个批处理文件,但该窗口立即消失。 我也许可以尝试查看Process.ExitCode,但我假设正在显示命令窗口(尽管非常简短),该过程看起来开始OK。我不希望我的代码等待进程完成,尽管我可能暂时为了调试目的而这样做。 – 2014-09-18 16:42:25
如果您重命名.bat以使其找不到,那么Process.Start应抛出“找不到文件”异常。这是否发生? – 2014-09-18 17:02:00