## System

### Introduced

v1.0

### Description

System allows you to run operating system commands, programs or batch files. It is usually used along with the XSIApplication.Platform property in order to achieve maximum portability. XSIApplication.InstallationPath can also be used to minimize usage of hard coded paths.
Your programs and batch files can use the standard exit command to return a value (for example, 'exit(1)' in C/C++, 'exit 1' in shell programing (Unix) or 'exit /b 1' on Windows XP batch files).
Operating system commands usually return 0 for success or any other value for errors. Please consult your OS vendor's documentation for more details.
Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference. However, the return value also provides the output argument.

### Scripting Syntax

    oDouble = System( Pathname, [Value] );

### Return Value

The return value of the executed command, program or batch file as a Double. This value can be used as a means to transmit information from your batch files or custom built applications to Softimage.

### Parameters

Parameter | Type | Description
--- | --- | ---
Pathname | String | Command to be executed. Default Value: none
Value | Double | This optional parameter is equivalent to the return value. It is provided for backward-compatibility only.

### Examples

#### 1. VBScript Example

    ' Creates a text file with the content of the project directory

    Dim cmdResult		' result of the command line operation

    Dim cmd				' command to execute

    Dim destinationPath	' destination path for the created file

    Dim sourcePath		' path of the directory used to create the file

    ' source = project path

    sourcePath = Application.InstallationPath( siProjectPath )

    ' output in the user path

    destinationPath = Application.InstallationPath( siUserPath )

    ' create the command line depending on the current platform

    Select Case Application.Platform

    	' Windows

    	Case "Win32"

    		cmd = "dir " & sourcePath & " > " & destinationPath & "\content.log"

    	' Linux

    	Case Else

    		cmd = "ls " & sourcePath & " > " & destinationPath & "/content.log"

    End Select

    ' run the constructed command

    cmdResult = system( cmd )

    ' Check if everything went fine

    If cmdResult = 0 Then

    	LogMessage "Success"

    Else

    	LogMessage "Failure"

    End If

#### 2. VBScript Example

    ' Running an application through Softimage

    Dim customApplication		' the application or batch file to run

    Dim customApplicationParam	' parameters to pass to your application

    Dim appResult			' the return code of your application

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    ' Set the custom application to run.  Put your application

    ' path here.  You could use the Application.InstallationPath

    ' property along with the Application.Platform property to make

    ' your code work on any possible user configurations.

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    customApplication = "notepad.exe"

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    ' Set the parameters to pass to your custom application.  This can

    ' be nothing if none are required.

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    ApplicationParam = "c:/content.log"

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    ' execute the application

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    appResult = System( customApplication & " " & ApplicationParam )

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    ' Perform actions according to the return value of the application

    ' The values below must be customised according to the application

    ' or the batch file that ran.

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Select Case appResult

    	Case 0 LogMessage "Wonderful!"

    	Case 1 LogMessage "Error case when 1 is returned"

    	Case 2 LogMessage "Error case when 2 is returned"

    	Case Else LogMessage "Any other error case"

    End Select

### See Also

XSIUtils.LaunchProcess