【发布时间】:2011-10-26 11:33:22
【问题描述】:
:)
我有一个可以通过命令行执行的软件,现在我希望它可以直接从我的 C# 应用程序中执行。可悲的是,没有错误,但我仍然做不到。 :(
软件的.exe文件路径为C:\program files\mysoftware.exe
我想输入的命令是 cd c:\程序文件\mysoftwareFolder 进入 mysoftware.exe d:\myfolder\file1.xxx d:\myfolder\file2.xxx -mycommand 进入 退出
上面的命令在实际的命令提示符下运行得很好,但它们在我的 C# 代码中不起作用。
代码如下:
Process cmdprocess = new Process();
System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo();
startinfo.FileName = "cmd";
startinfo.WindowStyle = ProcessWindowStyle.Hidden;
startinfo.CreateNoWindow = true;
startinfo.RedirectStandardInput = true;
startinfo.RedirectStandardOutput = true;
startinfo.UseShellExecute = false;
cmdprocess.StartInfo = startinfo;
cmdprocess.Start();
System.IO.StreamReader sr = cmdprocess.StandardOutput;
System.IO.StreamWriter sw = cmdprocess.StandardInput;
sw.WriteLine(@"echo on");
sw.WriteLine(@"c:");
sw.WriteLine(@"cd" +@"program files\mysoftwarefolder");
sw.WriteLine(@"mysoftware.exe" +@"d:\myfolder\file1.xxx" +@"d:\myfolder\file2.xxx" +@"-mycommand");
sw.WriteLine(@"exit");
sw.Close();
sr.Close();
我猜不正确的部分可能是 "startinfo.FileName = "cmd";"或者我在代码中键入命令的方式,但我不知道如何更正它们。 :(
请告诉我我做错了什么。我很感激你的每一个回答! :)))
更新感谢您的帮助!我尝试在批处理文件中编写命令,但它只能在调试模式下工作。 (我忘了告诉你们我正在开发一个 Web 服务。)当我运行将使用这个 C# 服务的外部项目时,它不会工作。我不知道我是否应该在我的代码中添加一些东西。
帮助meeeeee pleaseeeee (T___T)
【问题讨论】:
-
查看连接字符串的方式。例如,当我认为你想要这个
"cd program files\mysoftwarefolder"时,这个@"cd" +@"program files\mysoftwarefolder"会得到你这个"cdprogram files\mysoftwarefolder"。注意空间。
标签: c# command-line command-prompt