没想到趴窝了 分析了半天 应该是perl解释器版本过高的原因 换版本5.8左右的解决问题

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
程序代码:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;
namespace ct3gpHint
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hello my master!");
string path = @"C:\\WINDOWS\system32\mp4creator.exe";
string comdstr = @" -list D:\vod1\3gp\20140626093319765.3gp";
RunCmd(path,comdstr);
Thread.Sleep(4000);
string cmdstr2 = @" -hint=2 D:\vod1\3gp\20140626093319765.3gp";
RunCmd(path,cmdstr2);
string cmdstr3 = @" -hint=1 D:\vod1\3gp\20140626093319765.3gp";
RunCmd(path, cmdstr3);
Console.ReadLine();
}
/// <summary>
/// 运行cmd命令
/// 不显示命令窗口
/// </summary>
/// <param name="cmdExe">指定应用程序的完整路径</param>
/// <param name="cmdStr">执行命令行参数</param>
static bool RunCmd(string cmdExe, string cmdStr)
{
bool result = false;
try
{
using (Process myPro = new Process())
{
myPro.StartInfo.FileName = "cmd.exe";
myPro.StartInfo.UseShellExecute = false;
myPro.StartInfo.RedirectStandardInput = true;
myPro.StartInfo.RedirectStandardOutput = true;
myPro.StartInfo.RedirectStandardError = true;
myPro.StartInfo.CreateNoWindow = true;
myPro.Start();
//如果调用程序路径中有空格时,cmd命令执行失败,可以用双引号括起来 ,在这里两个引号表示一个引号(转义)
string str = string.Format(@"""{0}"" {1} {2}", cmdExe, cmdStr, "&exit");
myPro.StandardInput.WriteLine(str);
myPro.StandardInput.AutoFlush = true;
myPro.WaitForExit();
myPro.Dispose();
result = true;
}
}
catch
{
}
finally
{
}
return result;
}
}
}
