process调用CMd.exe
小弟写了一段程序调用CMD.exe,执行一个EXE文件,完后发现exe文件有时候执行,有时候不执行,后来用建目录的方式测试,发现目录也没有建立。求高人帮忙。ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = "cmd.exe";
// p.StartInfo.Arguments = "cd " + SoftPath;
pi.UseShellExecute = false;
pi.RedirectStandardInput = true;
pi.RedirectStandardOutput = true;
pi.RedirectStandardError = true;
pi.CreateNoWindow = true;
Process p = new Process();
p.StartInfo = pi;
p.Start();
p.StandardInput.WriteLine(@"cd\");
p.StandardInput.WriteLine("d:");
p.StandardInput.WriteLine("cd " + SoftPath);
p.StandardInput.WriteLine("wmailto -init"); //外部EXE文件初始化
p.StandardInput.WriteLine(SMTPMailServer); //外部EXE文件初始化
p.StandardInput.WriteLine(From); //外部EXE文件初始化
p.StandardInput.WriteLine("IBC");//外部EXE文件初始化
p.StandardInput.WriteLine(SMTPMailServer);//外部EXE文件初始化
p.StandardInput.WriteLine("");//外部EXE文件初始化
p.StandardInput.WriteLine("");//外部EXE文件初始化
p.StandardInput.WriteLine("mkdir test1"); //建目标测试
p.StandardInput.WriteLine("wmailto -spactrak -t" + @"D:\application_data\Temporary_files\SendMail_Status_IBC\IBC8_10_2010.csv abc@abc.com"); //执行一个外部EXE发送邮件。
p.StandardInput.WriteLine("exit");
p.close();
--------------------编程问答-------------------- 各位大哥救救命啊! --------------------编程问答-------------------- 看来你的DOS 命令不是很熟悉啊
本来可以 写一起的 比如 cd\ 和 d: 可以写成 "cd /d d: && cd "+ path +"
我不知道你的外部文件初始化是什么意思 难道是执行的意思,这样写没有问题啊
建立目录 直接 md 就可以了 md dirs 至于
wmailto -spactrak -t" + @"D:\application_data\Temporary_files\SendMail_Status_IBC\IBC8_10_2010.csv abc@abc.com"
DOS 不支持 空格的 如果有空格 那么请用""
--------------------编程问答-------------------- wmailto -spactrak -t" + @"D:\application_data\Temporary_files\SendMail_Status_IBC\IBC8_10_2010.csv abc@abc.com
我调试的时候把这段话复制出来贴到CMD下,是可以运行的啊。现在搞晕了,查不到问题! --------------------编程问答-------------------- 是否要加一个pi.WorkingDirectory = 另外需要执行的Exe 所在目录 --------------------编程问答-------------------- 是否要加一个pi.WorkingDirectory = 另外需要执行的Exe 所在目录
补充:.NET技术 , C#