我想写个操作命令行窗口的代码,比如我的画面的上点了那个执行按钮后,想编译一个文件~
就像我以前打开“开始”中的运行,输入cmd,跳出命令行窗口。
然后输入cd D:\ (文件在D盘下)
回车后进入了D盘 然后输入编译命令csc Hello.cs,再按回车
D盘下就生成了个Hello.exe文件
然后输入Hello去执行它,也就显示了执行的结果。
如图:
以上是我能在命令行窗口看到的,我现在不想手动,想做个程序自动执行,并且跳出命令行窗口
而且上面的内容步骤要和我手动操作一样。
现在遇到的问题是,能打开命令行窗口,还能执行一条命令,但是运行时候马上就消失了,汗
请高手指点,下面是我的代码。。
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.Arguments = "/c" + "ipconfig"; //测试
p.Start();
就像我以前打开“开始”中的运行,输入cmd,跳出命令行窗口。
然后输入cd D:\ (文件在D盘下)
回车后进入了D盘 然后输入编译命令csc Hello.cs,再按回车
D盘下就生成了个Hello.exe文件
然后输入Hello去执行它,也就显示了执行的结果。
如图:
以上是我能在命令行窗口看到的,我现在不想手动,想做个程序自动执行,并且跳出命令行窗口
而且上面的内容步骤要和我手动操作一样。
现在遇到的问题是,能打开命令行窗口,还能执行一条命令,但是运行时候马上就消失了,汗
请高手指点,下面是我的代码。。
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.Arguments = "/c" + "ipconfig"; //测试
p.Start();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.Arguments = "/k ipconfig"; //测试
p.Start();
http://www.codeproject.com/KB/recipes/plossum_commandline.aspx
http://www.codeproject.com/KB/recipes/command_line.aspx
p.StartInfo.Arguments = "/k" + "ipconfig";
p.Start();
p.StartInfo.Arguments = "/k" + "cd c:\\";
p.Start();
如果我这样它会跳出2个命令行窗口
csc /out:"C:\\$ExeTemp.exe" "C:\demo.cs"
@if not exist "C:\\$ExeTemp.exe" goto execute
$ExeTemp.exe
:execute
@pause
执行后在c盘做成了个$ExeTemp.exe文件,然后呢?
那个文件我执行了下,貌似一闪就关掉了。在那一瞬间我看到里面有一行应该说只有一行我代码里输出的字符。
好像没那个过程