我在實際的命令提示符下輸出看起來是這樣的:命令行輸出驗證
Name: My Software
Version: 1.0.1
Installed location: c:\my folder
我試圖通過C#代碼
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + "my command to execute");
// The following commands are needed to redirect the standard output.
// This means that it will be redirected to the Process.StandardOutput StreamReader.
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
// Do not create the black window.
procStartInfo.CreateNoWindow = true;
// Now we create a process, assign its ProcessStartInfo and start it
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
// Get the output into a string
string result = proc.StandardOutput.ReadToEnd();
string[] lines = result.Split(new string[] { System.Environment.NewLine, }, System.StringSplitOptions.None);
foreach (string tmp in lines)
{
if (tmp.Contains("Version"))
{
isAvailable= true;
}
}
我不想得到這個輸出只是檢查一個版本標記,我試圖獲取版本值並進行比較,例如,如果值爲1.0.1,我想要該值並與2.0.0進行比較。
我可以使用indexof
(如result.IndexOf("Version:");
) - 但是,這並不讓我的版本
值的任何想法會有所幫助。
上面的代碼給了我版本值,所有答案都很有幫助,謝謝大家。 – Sharpeye500