1

I want to be able to run cmd.exe from a Python script and a particular command with arguments but I can't seem to get it working.

I have tried

cmdL = r"C:\WINDOWS\system32\cmd.exe"
schTasks = "schtasks.exe"
#run the schtasks.exe
os.system(cmdL + schTasks)

but the dos window appears and then disappears quickly.

What am I doing wrong?

Thanks

Simeon Visser
  • 118,920
  • 18
  • 185
  • 180
MapMan
  • 630
  • 2
  • 13
  • 28

2 Answers2

3

The modern way of executing processes from a Python script is by using the subprocess module:

import subprocess
subprocess.call(["schtasks.exe"])

You can also pass arguments, for example:

subprocess.call(["ls", "-l"])

This means you won't need to utilize cmd.exe. Python will execute the given executable with the given parameters as desired.

Simeon Visser
  • 118,920
  • 18
  • 185
  • 180
0

You forget the space between cmd.exe and the argument.

os.system("%s %s" % (cmdL, schTasks))

Nonetheless is the better way to go via subprocess like the other answer.

halex
  • 16,253
  • 5
  • 58
  • 67