【问题标题】:How do I use ProcessStartInfo to run a batch file?如何使用 ProcessStartInfo 运行批处理文件?
【发布时间】:2025-12-09 11:30:01
【问题描述】:

但它不起作用 - 意味着 java 代码没有被执行。 尽管在 Windows 资源管理器中单击或在命令行中运行时批处理文件运行良好..

由于当批处理文件是单个 DOS 命令时这可以正常工作,我认为这与 Java 代码需要大约 20 分钟才能运行的事实有关。 我正在使用以下代码

var si = new ProcessStartInfo();
si.CreateNoWindow = true;
si.FileName = batchFileName;
si.UseShellExecute = false;
Process.Start(si);

我做错了什么?

【问题讨论】:

    标签: c# .net batch-file processstartinfo


    【解决方案1】:

    UseShellExecute 设置为true,因此它会加载cmd.exe 来运行批处理文件。

    【讨论】:

    • 或者,如果您真的不想使用 ShellExecute,请运行 cmd /C batchFileName.bat
    • Lucas - 这应该如何运行?使用 ProcessStartInfo 或其他什么?
    • 您可以使用 ProcessStartInfo 运行“cmd.exe”,将“/C batchFileName.bat”作为命令行传递。
    • 我试过了,但似乎对我不起作用(我没有以管理员身份运行,也没有管理员权限。我现在要直接尝试
    【解决方案2】:

    检查this - ProcessStartInfo 的批处理文件包装器:

    C:\>ProcessStartJS.bat "cmd.exe" -arguments "/c pause" -style Minimized -priority High -newWindow yes -useshellexecute yes
    
    Started: cmd.exe /c pause
    PID:6540
    

    【讨论】:

      最近更新 更多