The system() call only launches executables, and bat files aren't executable. Executable files end ONLY with .exe or .com. The executable for batch files is the command prompt, so you'll need something like system("cmd.exe -z myfile.bat"); - replace -z with whatever flag is needed to make cmd.exe run a batch file then exit.