RunProcess

RunProcess["command"]

runs the specified external command, returning information on the outcome.

RunProcess[{"command",arg1,arg2,}]

runs the specified command, with command-line arguments argi.

RunProcess[command,"prop"]

returns only the specified property.

RunProcess[command,prop,input]

feeds the specified initial input to the command.

Details

  • RunProcess blocks until the process it starts has finished.
  • In RunProcess[command,prop,input], input is automatically converted to a string using ToString. The same is true for the argi in RunProcess[{command,arg1,},].
  • Typical possible properties to return include:
  • "ExitCode"the exit code for the process
    "StandardOutput"data sent to standard output, as a string
    "StandardError"data sent to standard error, as a string
    Allan association of all properties (default)
  • RunProcess has the following options:
  • ProcessDirectoryInheritedinitial working directory
    ProcessEnvironmentInheritedenvironment variables to supply
  • By default, the subprocess will inherit its process directory and environment variables from the Wolfram Engine.

Examples

open allclose all

Basic Examples  (4)

Run a simple external command:

Run a command, and get back only what it writes to the standard output channel:

Give a command-line option to the function:

Equivalent command on Windows:

Run a command, and get back only its exit code:

Scope  (2)

Run the command-line console and a couple of commands inside it, then quit it:

Run the same program with the same input, but retrieve only its standard output:

Possible Issues  (4)

The right way to call RunProcess for a program plus its arguments is using a list:

Calling RunProcess with the command and arguments in a single string does not work:

Also, calling RunProcess with the program arguments as arguments for RunProcess is not allowed:

Special symbols like ~ and * are not converted using shell expansion because RunProcess skips the shell:

Shell commands like dir and echo cannot be called directly on Windows because they are not binaries (however, they are binaries on Unix systems):

Some commands might need to be called using absolute paths:

Wolfram Research (2014), RunProcess, Wolfram Language function, https://reference.wolfram.com/language/ref/RunProcess.html.

Text

Wolfram Research (2014), RunProcess, Wolfram Language function, https://reference.wolfram.com/language/ref/RunProcess.html.

CMS

Wolfram Language. 2014. "RunProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RunProcess.html.

APA

Wolfram Language. (2014). RunProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RunProcess.html

BibTeX

@misc{reference.wolfram_2023_runprocess, author="Wolfram Research", title="{RunProcess}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/RunProcess.html}", note=[Accessed: 19-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_runprocess, organization={Wolfram Research}, title={RunProcess}, year={2014}, url={https://reference.wolfram.com/language/ref/RunProcess.html}, note=[Accessed: 19-March-2024 ]}