Run Windows Script
Runs Windows scripts in the command line.
Command availability: IBM RPA SaaS and IBM RPA on premises
Description
Runs Windows-type scripts in the command line. For supported types of script, see the scripttype
parameter options. You can specify the source of the script in the source
parameter options
Script syntax
IBM RPA's proprietary script language has a syntax similar to other programming languages. The script syntax defines the command's syntax in the script file. You can work with this syntax in IBM RPA Studio's Script mode.
runWindowsScript [--scripttype(WindowsScriptType)] [--source(WindowsScriptSource)] --script(String) --file(String) --asset(String) [--arguments(String)] [--blockexecution(Boolean)] (Numeric)=exitcode (String)=output (String)=error
Input parameters
The following table displays the list of input parameters available in this command. In the table, you can see the parameter name when working in IBM RPA Studio's Script mode and its Designer mode equivalent label.
Designer mode label | Script mode name | Required | Accepted variable types | Description |
---|---|---|---|---|
Script Type | scripttype |
Optional |
WindowsScriptType |
Specifies the type of script to run. For more information, see the scripttype parameter options |
Source | source |
Required |
WindowsScriptSource |
Select the form in which you want to provide the script. For more information, see the source parameter options. The default value is Text . |
Code | script |
Required when Source is Text |
Text |
Source code of the script. |
File | file |
Required when Source is File |
Text |
Path to the file containing the script. |
Asset | asset |
Required when Source is Asset |
Text |
Name or variable of the asset that contains the script file. |
Parameters | arguments |
Optional |
Text |
Specifies parameters with values passed to the script. |
Block Execution | blockexecution |
Optional |
Boolean |
Enable this parameter to block the execution of the current script until the Windows script ends. If this parameter is not enabled, the script does not return any output. |
scripttype
parameter options
The following types of script are supported:
Script Type | Description |
---|---|
BAT | Specifies a .BAT type script. |
JScript | Specifies a JScript type of script. JScript is a variation of JavaScript used in Active Server Pages. |
Visual Basic | Specifies a Visual Basic type script. |
WScript | Specifies a Windows Script Host type. |
source
parameter options
The following sources are supported:
Source Type | Description |
---|---|
Text | Provide the written command. |
Asset | Provide the script file as an IBM RPA Studio asset. For more information, see Creating assets. |
File | Provide the path to the file that contains the script that you want to run. |
Output parameters
Designer mode label | Script mode name | Accepted variable types | Description |
---|---|---|---|
Exit Code | exitcode |
Number |
Exit code of the script execution. Only returns a value if the option Block Execution is enabled. |
Output | output |
Text |
Output from the execution of the script. Only returns a value if the option Block Execution is enabled. |
Error | error |
Text |
Error returned if script execution fails. Only returns a value if the option Block Execution is enabled. |
Example
The following example creates a folder and an example file in your desktop and runs a Windows Batch file that takes them as parameters. The Batch file copies the file into the folder and attempts to create a new file with the same name as the one in the folder. The program exits with error code 1.
defVar --name desktopPath --type String
defVar --name textWriter --type TextFileWriter
defVar --name myFolder --type String
defVar --name textFilePath --type String
defVar --name exitCode --type Numeric
defVar --name output --type String
defVar --name errorMessage --type String
defVar --name directoryExists --type Boolean
getSpecialFolder --folder "Desktop" desktopPath=value
setVar --name "${textFilePath}" --value "${desktopPath}\\MyTextFile.txt"
setVar --name "${myFolder}" --value "${desktopPath}\\MyFolder"
openTextWriter --mode "OpenOrCreate" --autoflush --share "None" --path "${textFilePath}" --encoding "Default" textWriter=value
textWrite --text "Hello, World!" --file ${textWriter}
textFileClose --file ${textWriter}
ifFolder --path "${myFolder}" directoryExists=value
if --left "${directoryExists}" --operator "Is_True" --negate
createDir --path "${myFolder}" myFolder=value
endIf
runWindowsScript --scripttype "BATScript" --source "Text" --script "@echo off\r\nrem Copy file to the specified directory\r\nrem Try to create a file with the same name in the directory\r\nrem And get an error level different than 0\r\n\r\ncopy %2 %1\r\necho %errorlevel%\r\ncd %1\r\nfor %%F in (%2) do (\r\n set File=%%~nxF\r\n)\r\nmd %File%\r\necho %errorlevel%\r\nexit /b %errorlevel%\r\n" --arguments "${myFolder} ${textFilePath}" --blockexecution exitCode=exitcode output=output errorMessage=error
logMessage --message "Output: ${output}\r\nError Message: ${errorMessage}\r\nExit Code: ${exitCode}" --type "Info"
The Block Execution parameter is enabled to output the error messages in the example.