c#执行外部命令示例分享,大家参考使用吧
- String Command = @"python test.py";
- String Output = Execute.run(Command);
- Console.WriteLine(Output);
- <DIV class=blockcode>
- <BLOCKQUOTE>
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- //using before change the namespace
- namespace test.utility
- {
- class Execute
- {
- public static String run(String Command)
- {
- String Output = null;
- if (Command != null && !Command.Equals(""))
- {
- Process process = new Process();
- ProcessStartInfo processStartInfo = new ProcessStartInfo();
- processStartInfo.FileName = "cmd.exe";
- //no create the cmd windows
- processStartInfo.CreateNoWindow = true;
- processStartInfo.RedirectStandardInput = true;
- processStartInfo.RedirectStandardOutput = true;
- processStartInfo.RedirectStandardError = true;
- processStartInfo.UseShellExecute = false;
- process.StartInfo = processStartInfo;
- try
- {
- process.Start();
- process.StandardInput.WriteLine(Command);
- process.StandardInput.WriteLine("exit");
- process.WaitForExit(30 * 1000);
- Output = process.StandardOutput.ReadToEnd();
- }
- catch (Exception e)
- {
- process.Close();
- return e.ToString();
- }
- finally
- {
- process.Close();
- }
- }
- return ContextFilter(Output);
- }
- public static String ContextFilter(String Output)
- {
- Regex regex_end = new Regex("^[^^]*#end");
- Match match = regex_end.Match(Output);
- Regex regex_begin = new Regex("^[^^]*?#begin\r\n");
- String result = regex_begin.Replace(match.Value, "");
- Regex regex_tar = new Regex("\r\n#end$");
- result = regex_tar.Replace(result,"");
- return result;
- }
- }
- }
复制代码
|
|