日期:2014-05-17  浏览次数:20980 次

c#调用DOS操作命令失败
string str;
            Process process = new Process();
            process.StartInfo.FileName = "cmd.exe";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardInput = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError = true;
            process.StartInfo.CreateNoWindow = true;
            process.Start();
            process.StandardInput.WriteLine(command);//输入的命令
            process.StandardInput.WriteLine("exit");
            process.WaitForExit(60000);
            str = process.StandardOutput.ReadToEnd();
            process.Close();
            return str;
            command是输入的命令,现在如果我打开cmd.exe输入tftp是可以执行的,结果为

TFTP [-i] host [GET | PUT] source [destination]
  -i              指定二进制映像传输模式(也称为
                  八进制)。在二进制映像模式中,逐字节地
                  移动文件。在传输二进制文件时,
                  使用此模式。
  host            指定本地或远程主机。
  GET             将远程主机上的文件目标传输到
                  本地主机的文件源中。
  PUT             将本地主机上的文件源传输到
                  远程主机上的文件目标。
  source          指定要传输的文件。
  destination     指定要将文件传输到的位置。
但是如果将command命令写入"tftp"则不能得到相应的结果。(如果采用其他命令比如ping是可以完成的。)请问这是为什么?
win7系统的tftp客户端服务已经开启

------解决方案--------------------
你把cmd.exe改为tftp.exe再输入相关的tftp的命令