gpt4 book ai didi

c# - 在 C# 中使用参数执行命令行 .exe

转载 作者:太空狗 更新时间:2023-10-30 00:06:58 28 4
gpt4 key购买 nike

我正在尝试使用 C# 中的参数执行命令行程序。我原以为在 C# 中坚持并实现这一目标是微不足道的,但事实证明,即使使用本网站及其他网站上的所有可用资源,它也具有挑战性。我不知所措,所以我会提供尽可能详细的信息。

我当前的方法和代码如下,在调试器中变量命令具有以下值。

command = "C:\\Folder1\\Interfaces\\Folder2\\Common\\JREbin\\keytool.exe -import -noprompt -trustcacerts -alias myserver.us.goodstuff.world -file C:\\SSL_CERT.cer -storepass changeit -keystore keystore.jks"

问题可能出在我如何调用和格式化我在该变量命令中使用的字符串。

对可能出现的问题有什么想法吗?

ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + command);

procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
Process process = new Process();
process.StartInfo = procStartInfo;
process.Start();
string result = process.StandardOutput.ReadToEnd();
Console.WriteLine(result);

一旦完成,我在变量结果中没有返回任何信息或错误。

最佳答案

等待进程结束(让它完成它的工作):

ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + command);

procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;

// wrap IDisposable into using (in order to release hProcess)
using(Process process = new Process()) {
process.StartInfo = procStartInfo;
process.Start();

// Add this: wait until process does its work
process.WaitForExit();

// and only then read the result
string result = process.StandardOutput.ReadToEnd();
Console.WriteLine(result);
}

关于c# - 在 C# 中使用参数执行命令行 .exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37549227/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com