我正在使用以下代码从 C# 运行进程;
private static void ExecuteShellCMD(string workingDir, string commandWithArgs, bool bWait = true)
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "runas";
info.FileName = "cmd.exe";
info.WorkingDirectory = workingDir;
info.Arguments = "/C " + commandWithArgs;
info.UseShellExecute = false;
using (Process myProcess = Process.Start(info))
{
if (bWait)
{
myProcess.WaitForExit();
}
int ExitCode = myProcess.ExitCode;
//Log exit code here.
}
}
它加载一个提升的命令窗口并执行我传递给它的代码/bat 文件,但没有将任何内容记录到控制台。这在其他机器上似乎不一致,并且过去在我的机器上工作过,我想知道是否有人对我如何始终如一地使这个进程只打印日志到进程创建的命令窗口有任何想法。
如果我设置,我可以看到日志,UseShellExecute = true
但如果Verb
不接受不受欢迎的提升提示就无法使用。
我尝试在网络上寻找解决方案,并且我知道我可以使用其他设置重定向输出。关于这个主题的大多数问题和教程似乎都涉及将输出重定向到其他地方,但我希望能够跟踪命令窗口本身的进度。
也许我错过了命令行参数或类似参数?
事实证明,这实际上是 Unity Hub 中的一个错误。过程和输出工作正常,但是当从 Unity Hub 启动的 Unity 实例运行时,它控制了输出并且没有释放它。这是通过直接启动 Unity 解决的,并且已经针对 Unity 中心提交了错误报告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句