MapMan
MapMan

Reputation: 668

How to pass argument to cmd.exe in from python script?

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

Upvotes: 1

Views: 6429

Answers (2)

Simeon Visser
Simeon Visser

Reputation: 122506

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.

Upvotes: 3

halex
halex

Reputation: 16403

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.

Upvotes: 0

Related Questions