how i can execute CMD command in c# console application?

It's very simple to make a mysqldump in cmd on windows, simply:

Open cmd and put type mysqldump uroot ppassword database > c:/data.sql

This results in an SQL dump file for the desired database.

I'm writing a console application so I may run this command:

-uroot -ppass databse  > location\data.sql

I tried the following code to no avail:

System.Diagnostics.ProcessStartInfo procStartInfo =
    new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd); 

How might I start a cmd process and send my command successfully?

Answers


Is there a reason why you don't call mysqldump directly?

ProcessStartInfo procStartInfo = 
    new ProcessStartInfo("mysqldump", "uroot ppassword databse > c:/data.sql");

If there is a reason, your code should look like this:

ProcessStartInfo procStartInfo = 
    new ProcessStartInfo("cmd", 
        "/c \"mysqldump uroot ppassword databse > c:/data.sql\"");

Changes:

  • You where missing "mysqldump" in your cmd variable.
  • You should put the command to be executed in the command line into quotes.

Process cmd = new Process();

cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;

cmd.Start();

/* execute "dir" */

cmd.StandardInput.WriteLine("dir");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());

Do you run Process.Start(psi) with the ProcessStartInfo instance you have just created?

Anyway, the following should do the work:

string commandToExecute = @"c:\windows\system32\calc.exe"; Process.Start(@"cmd", @"/c " + commandToExecute);


Executing Batch File in C#

Check it out.


Need Your Help

Is stack memory contiguous?

c++ memory-management callstack

How does the compiler enforce the stack memory to be contiguous, does it cause the memory to be moved everytime while the program is running or does it reserve the memory on stack needed by program

In Ruby on Rails, what's the difference between DateTime, Timestamp, Time and Date?

ruby-on-rails datetime date time timestamp

In my experience, getting dates/times right when programming is always fraught with danger and difficulity.