How do I execute a dos command from a .NET VC++ program

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have a .NET VC++ program, I want to execute some dos command from the
program, e.g. copy some file, and etc. How do I do that?
 
- (C/C++) std::system
- (C++ CLI) System::Diagnostics::Process::Start (in this case, you must use cmd.exe /k like a base process and a former command
line)
 
Dear Cholo:

Can you provide more details about the actual codings and how to pass the copy
command to cmd.exe.

I tried

System::Diagnostics::Process::Start ("cmd.exe", "copy FILEA FILEB");

But this does not work. The only thing the program does is to pop up the DOS
prompt command window without actually executing the copy command.

Also how to make the DOS prompt command window to go away from the program
after the copy command is done?
 
You should use an extra parameter with cmd.exe (/k or /c) (check cmd help typing cmd /? ). Also you can use the && operator to
concatenate commands

Your code must look like this:

using namespace System::Diagnostics;.

// In one line
Process::Start("cmd.exe", "/c dir && pause");

// Executing with hidden console
ProcessStartInfo^ pSi = gcnew ProcessStartInfo("cmd.exe");
pSi->Arguments = "/c copy xxx yyy && delete xxx";
pSi->WindowStyle = ProcessWindowStyle::Hidden;
Process::Start(pSi);
 
Back
Top