c#执行cmd命令

时间:2022-06-01 19:40:32

            proc = new Process();
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.FileName = "cmd.exe";
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.RedirectStandardError = true;
            proc.StartInfo.RedirectStandardInput = true;
            proc.StartInfo.RedirectStandardOutput = true;

            proc.Start();
            proc.StandardInput.WriteLine("cd c:\\windows\\system32");
            proc.StandardInput.WriteLine(cmd);
            proc.StandardInput.WriteLine("exit");
            proc.Close();  


上面的代码在开发的电脑上可以正常执行
但是部署到另一台电脑就没反应了

8 个解决方案

#1


framework 也装了还是没用

#2


也不报错?你期待什么结果呢?
你把下面的操作手动做一遍呢: 
proc.Start();             
proc.StandardInput.WriteLine("cd c:\\windows\\system32");             proc.StandardInput.WriteLine(cmd);             
proc.StandardInput.WriteLine("exit");             
proc.Close();   

还有,你proc.StandardInput.WriteLine(cmd); 中的cmd是什么命令?

#3


莫非是上个世纪的系统 win98神马的???如果是的话cmd这样是打不开的
所有的文件都部署上了?看看有落下的没

#4


没有落下文件
cmd  就是 mstsc
在开发电脑上部署是可以执行的(不是用vs运行)
没有报错就是点了没反应

#5


系统是win 2003

#6


用手动输入命令也没有问题

#7


上次做一个wifi共享的小程序也遇到同样的问题,改了一下程序,将cmd的反馈信息显示到MessageBox,在自己的电脑上MessageBox得到的是正常反馈信息,而在别人的电脑得到的是“c:\Users\Lenovo\'程序中写入的cmd指令'”,然后将程序在不同路径下运行,MessageBox显示的是“对应程序绝对路径\程序中写入的cmd指令”。  在此也请教一下,怎么解决?

#8


那台电脑上有cmd.exe这个文件吗?  或者这个文件不在c:\\windows\\system32文件夹下

其实执行cmd没必要写那么多代码吧:

string command = "cd c:\\windows\\system32";
Process.Start("cmd.exe",command);

#1


framework 也装了还是没用

#2


也不报错?你期待什么结果呢?
你把下面的操作手动做一遍呢: 
proc.Start();             
proc.StandardInput.WriteLine("cd c:\\windows\\system32");             proc.StandardInput.WriteLine(cmd);             
proc.StandardInput.WriteLine("exit");             
proc.Close();   

还有,你proc.StandardInput.WriteLine(cmd); 中的cmd是什么命令?

#3


莫非是上个世纪的系统 win98神马的???如果是的话cmd这样是打不开的
所有的文件都部署上了?看看有落下的没

#4


没有落下文件
cmd  就是 mstsc
在开发电脑上部署是可以执行的(不是用vs运行)
没有报错就是点了没反应

#5


系统是win 2003

#6


用手动输入命令也没有问题

#7


上次做一个wifi共享的小程序也遇到同样的问题,改了一下程序,将cmd的反馈信息显示到MessageBox,在自己的电脑上MessageBox得到的是正常反馈信息,而在别人的电脑得到的是“c:\Users\Lenovo\'程序中写入的cmd指令'”,然后将程序在不同路径下运行,MessageBox显示的是“对应程序绝对路径\程序中写入的cmd指令”。  在此也请教一下,怎么解决?

#8


那台电脑上有cmd.exe这个文件吗?  或者这个文件不在c:\\windows\\system32文件夹下

其实执行cmd没必要写那么多代码吧:

string command = "cd c:\\windows\\system32";
Process.Start("cmd.exe",command);