# Commandlines

The next part are the commandlines.

Default render commandlines:

Commandlines start with

CommandLine=

You do not have to place all flags into one line, you should use multiple lines for better readability.

Commandlines are executed one after another.

Exception:

If you have defined a render config file for an archive render (sceneIsMultiFrame=1; .rib, .mi, ...), then some commandline are looped/executed for each frame.

The commandline are then separated into three parts:

1. executed once before rendering

2. loop

3. executed once after rendering

The loop will start with the first commandline that has some kind of frame number (<FN>, <Scene>) in it.

And the loop ends with the last commandline that has some kind of frame number (<FN>, <Scene>) in it.

So you can set the environment and a clean-up function once, but the rendering is started for every frame.

### Commandline block header

Each commandline part has to start with an setting for which OS this commandline is ment.

This settings line has to start with an # and contains one or multiple of the following variables:

o[Windows]

o[Linux]

o[OSX]

o[KSO]

Example: ############# [Windows] [Linux] [KSO] #############

### OS switch - per line

Per Line:

Additional to this declaration via a header, lines can start with

o::win

o::lx

o::osx

If the OS does not match, the whole line is ignored (like a comment).

If the OS matches, the flag is removed and the rest of the line is taken.

Example 1 | ::win CommandLine= myScript.bat ::lx CommandLine= myScript.sh ::osx CommandLine= myScript_mac.sh -myFlag1 -moreflags | In this case the shell script is changed, but the commandline flags are the same for each OS
Example 2 | CommandLine= MyCommand -myFlag1 ::win -windowsFlag ::lx -linuxFlag -moreflags | In this case "MyCommand -myFlag1 -moreflags" is executed always. And -windowsFlag and -linuxFlag are added depending on the OS.

### OS Switch - in line

You can use these conditions to switch text within a line:

<IsWin ? >
<IsLx ? >
<IsMac ? >

Please see the next section for how to use conditions.

# Variables as value or condition

All commandlines usually use some kind of variables.

They are inside the < > characters.

There are two kind of usage possibilities for these variables:

As value replacement: | The variable is replaced by the value. E.g. <SeqStart> is replaced with the start frame, <Scene> with the scene name.
As conditional element | You can create a condition to check if a value is used at all. The condition "if Sequence divide is enabled, execute -overwrite". This would be <SequenceDivide -overwrite> The condition "if Sequence divide is enabled, execute -overwrite, otherwise execute -skip". This would be <SequenceDivide -overwrite ? -skip> You have to set inside the <>: - The value name - followed by the commandline you want to execute if the value is non-zero/set/true/non-empty Optional: - followed by a question mark ? Optional: - followed by the commandline you want to execute otherwise

These types can be combined.

For example if you do not have layers in your scene, you must not set the layer name in the commandline.

So you want to set:

If layer-not-empty, then execute -Layer "LayerName", otherwise do nothing.

This would be <Layer -Layer "<Layer>" >.

As you can see, the first <Layer... was used as a condition, the second "<Layer>" as value replacement.

# Variables

## Variables - Scene information

These variables will be replaced with the same values as you have set for the job at submission:

<SeqStart> <SeqEnd> <SeqStep> <SeqFileOffset> | Each client gets a part/chunk of the total sequence length for rendering. These values are the frame range a client should render.
<SeqFrameSet> <SeqFrameSetBool> <SeqFrameSetA85> | Frame Set to be rendered
Variable | Type | Use case | Example
SeqFrameSet | String | Best for human readability | 1003, 1006-1014+4, 1017, 1030, 1050, 1065-1075+5
SeqFrameSetBool | Bollean List | Best combination between human readability and custom script processing. | 1003-1001000100010010000000000001000000000000000000010000000000000010000100001
SeqFrameSetA85 | Compressed (ASCII text, not binary) | Best for commandlines as it is the shortest one. But requires you to use rrJob._binaryFrameSet() class in case you want to modify it. | A85c!!!!z:BGvhzzzm/!!!@BW@;Yqn/Orx4B!
<SeqFrameList> <SeqFrameList+-1> | List with all frames to render in the format: SeqStart,NextFrameNr,NextFrameNr,....,SeqEnd +-1 adds one frame before and after the sequence IF these frames are part of the total job sequence.
<SeqStart-1> <SeqEnd-1> | Start and end frame offsetted by -1
<SeqStartPadded> <SeqStartLead2> <SeqStartLead3> <SeqStartLead4> <SeqStartLead5> <SeqStartLead6> | Start frame with leading zeros. <SeqStartPadded> uses the frame padding of the job. Otherwise the frame padding for the start frame will be either 2,3,4,5 or 6.
<SeqStartNStep> <SeqStartNStep+1> | The number of the last frame before the next frame rendered. It will be calculated (Start+Step-1). The second +1 is equal to (Start+Step)
<SeqStartIdx> <SeqStartIdx-1> <SeqEndIdx> <SeqEndIdx-1> <SeqEndIdx+1> | Same as above, but instead of the real frame number, it returns the index of the frame. The first frame of the job has index 0.
<TotalSeqStart> <TotalSeqEnd> <TotalSeqStep> <TotalSeqStartPadded> <TotalSeqEndPadded> | Total sequence range of the scene/job. It is not the frame range a client should render. "Padded" uses the frame padding of the job to add leading zeros to the number.
<TotalFrames> | Total number of frames of the job. It is not the frame range a client should render.
<hasFirstJobFrame> <hasLastJobFrame> | Used for conditional expressions. This statement returns true if the frame chunk the client got contains the first/last frame of the job.
<ImageFramePadding> | The frame padding of the job
<FramePadding #> <FramePadding @> | Returns a number of #. e.g. with a framepadding of 3 it genertates ### # can be replaced with any other letter, e.g. @
<ImageHeight> <ImageWidth> | Height and width of the rendered image if known.
<ImageDir> <ImageDirComplete> | <ImageDir> is the directory for rendering. For most renderer <ImageDirComplete> and <ImageDir> is the same. For Maya renderings, the <ImageDir> does not include the Layer nor the channel name. <ImageDirComplete> does include the full path to your rendered images.
<ImageLastFolderName> | The last folder of the render output. Example: If the render output is \\fileserver\share\projectX\render\SceneY\beauty.###.exr then <ImageLastFolderName> is "SceneY".
<ImageFilename> <ImageFilenameAssembled> | The output filename. Assembled does not contain the tile name in case you have enabled tile rendering.
<ImageFilenameAssembled> | In case you are rendering images in tiles, this is the name of the assembled image.
<ImageFilenameOnly> | For Maya, the <ImageFilename> has to contain the layer folder. <ImageFilenameOnly> contains no folder.
<ImageFilenameVariables> | If you use file name variables like <RenderLayer> or <RenderChannel> in your Maya scene render settings, then RR has to set these variables at render time. It is not possible to tell Maya the resolved Layer or Channel names.
<ImageExtension> |
<ImageStereoL> <ImageStereoM> <ImageStereoR> | If the filename contains the <Stereo> flag, then <Stereo> will be replaced by the value inside these variables.
<PNL> | (ImagePreNumberLetter) Some applications always add a . or _ in front of the frame number. Set this variable to that character. RR needs this letter at the end of the image file name to find the images. But for some render applications you have to remove this letter again, otherwise you end up with two of them, Typical use is therefore <ImageFilename><EL<PNL>>
<OverrideImageFormat> |
<Camera> |
<Layer> <LayerAsFileName> | The layer variable of the job. It is used to select output nodes or render layers in the render application. AsFileName removes all slashes and other invalid characters. So it can be used for file names.
<Channel> | Similar use as <Layer>, depending on the render application.
<SceneState> | Similar use as <Layer>, depending on the render application.
<Database> <DatabaseName> | The path you set for the database. Only the last folder of the path.
<Scene> | Scene with total path
<SceneFileName> | Scene filename only without extension
<SceneFileExt> | Scene files extension only
<SceneFolder> | Folder of scene only
<SceneFN> <SceneFileNameFN> | Same as <Scene> and <SceneFileName>, but it is used in the loop calculation for used for multi-file archive renderings (.rib, .mi), see introduction of this chapter (the "Exception:")
<SceneFNasWildcard> | The <FN...> part is replaced by quotations marks ? as frame number placeholder.
<ShotgunID> | The ShotgunID set for the job
<sceneOS> <sceneOSstr> | The OS that was used to create the scene. sceneOSstr returns a string, sceneOS an id number.
<rrJob_OCIO_FileSpace> | OCIO format of the output image
<rrJob_OCIO_View> | OCIO format choosen as view transform in your scene file
<rrJob_OCIO_Config> | OCIO config file
<rrJobApp> <rrJobAppLcase> | Name of the render application. "LCase" means "Lower Case"
<rrJobRenderer> <rrJobRendererLcase> <rrJobRendererUcase> | Name of the renderer. "LCase" means "Lower Case"
<rrJobVer> <rrJobVer_NP> <rrJobVerMajor> <rrJobVerMinor> <rrJobVerRevision> <rrJobVerMinorRevision> <rrJobVerMinorRevision_NP> <rrJobVerMajorMinor> <rrJobVerMajorMinor_Minimal> <rrJobVerMajorMinor_Minimal_US> <rrJobVerNuke> | Version of the render application at submission (may not be the version at render time). Please see <rrExeVer> in following table "Variables - RR" for an example of the version formats and the version at render time
<rrJobRendererVersion> <rrJobRendererVersionMajor> | Version of the renderer at submission.

## Variables - Job

<FN> <FN1> <FN2> <FN3> <FN4> .. <FN7> <FNimgPadded> | Frame Number, used for multi-file archive renderings (.ass, .ifd, .rib, .mi) If you add a number, it uses this fixed frame padding. <FNimgPadded> Uses the frame padding set for the image name (seen at the submitter as ### blow the output edit box)
<FN-2> <FN-1> <FN+1> <FN+2> ... <FN7+2> | All <FN> variables support a modification of the frame number -2, -1, +1, +2.
<containsFirstJobFrame TrueString ? FalseString> <containsSecondJobFrame TrueString ? FalseString> <containsSecondLastJobFrame TrueString ? FalseS> <containsLastJobFrame TrueString ? FalseString> | These are used for conditions. <hasFirstJobFrame> is true if the current segment that the client renders contains the first frame of the whole job. <hasSecondJobFrame> is true if the current segment that the client renders contains the second frame of the whole job.
<SequenceDivide> | Mostly used as a condition to switch commandline parameter if SequenceDivide is enabled/disabled.
<ImageSingleOutputFile> | Mostly used as a condition to switch commandline parameter if you render a single output file (.avi .mov)
<UserInfos> | The custom user info that was set at submission or in rrControl/change settings.
<CustomScene> <CustomSequence> <CustomShot> <CustomVersion> | Scene/Sequence/shot/version name of the rendered job.
<CustomA> <CustomMyVariable> <CustomUser> <CustomOptionName> | You may define custom options in your render config file. These options are then shown at the Submitter like all other RR settings. And you can use them via their "CustomOptionName" as a variable. Just like all other RR settings. The variable name has to start with "Custom".
<rrUserName> | The name of the user that submitted the job.
<SubmitMachine> | Name of the machine that submitted the job
<X1><X2><Y1><Y2> | If you use the RR "tile frame" feature: Coordinates in pixel of the region to render, used if you split a frame with RR for multiple clients.
<X1f><X2f><Y1f><Y2f> | If you use the RR "tile frame" feature: Same as above, but coordinates are a float value in the range 0-1, where 1 is the full size.
<TotalTiles> | If you use the RR "tile frame" feature: Total number of tiles
<TileNumber> <TileNumber+1> | If you use the RR "tile frame" feature: Number of the current tile the client should render.
<CompanyProjectName> | The company project name set in the job
<CompanyProjectRootFolder> | If you use the scene/output folder to detect the company name, then this variable returns the folder until your project name.
<ID> <ID_S> | unique Job ID as a number and as a human readable string
<verboseLevel> | Inserts the verbose flags you have set in the render config.
<renderQuality> | Inserts the quality flags you have set in the render config.
<PreviewGamma> | Enabled if Preview Gamma 2.2 is enabled for the job.
<JobPriority> | Priority of the job.
<AvFrameTimeSec> <AvFrameTime> | The average frame time of the job. Can be used in post/done-scripts. <AvFrameTimeSec> is the time in seconds <AvFrameTime> is in format hour:min.sec
<AvFrameTimeMin5> <AvFrameTimeMin7> <AvFrameTimeMin10> <AvFrameTimeMin15> | This flag should can used as conditional element. Returns 1 if the average frame time of the job is higher than 5 (or 7 or 10 or 15) minutes. If RR does not yet have an average frame time, it returns 1 as well. Useful for example to enable/disable detailed progress percentages for frames.
<MaxMemUsage> | The maximum memory usage the job used during render on clients
<previewFilenameThumbnail0> <previewFilenameThumbnail1> <previewFilenameThumbnail2> <previewFilenameThumbnail3> <previewFilenameThumbnail4> <previewFilenameThumbnail5> <previewFilenameThumbnail6> <previewFilenameThumbnail7> <previewFilenameThumbnail8> <previewFilenameThumbnail9> <previewFilenameThumbnail99> <previewFilenameThumbnail-1> <previewFilenameThumbnail-2> <previewFilenameThumbnail-3> | Name of the preview image thumbnail. 0 is the first file, 1 the second file, ... 99 is the last one. -1 is the 1/4 th preview file -2 is the 2/4 th preview file -3 is the 3/4 th preview file
<hasWaitForPreviewApproval> <hasWaitForPreviewApproval> | Returns 1 if the job will wait for approval. Useful for conditional statements (see above)
<IsLocalRender> | Returns 1 if the option Local Render Out is set
<IsLocalScene> | Returns 1 if the option Local Scene Copy is set
<PreviewGamma> | Returns 1 if the option preview gamma 2.2 is set
<AuthStr> | If you want to send python commands to RR, then it might be required to authorize your command. The <AuthStr> can be used for this. See RR\render_apps\_prepost_scripts\Finished99__DeleteJob.* for an example.
<PrePostParamA> <PrePostParamB> | If you have setup the pre/post-script config to take a value, then this returns the value.
<rrOptionName> <rrParamName> | All job options and parameter can be accessed by their name. The name is the same as in the Submitter defaults files. E.g. <RenderPreviewFirst> <GPUrequired> <MaxCrashes>
<IsScriptStatus> | Returns either "true" or "false" depending on if it is a pre/preview/post/finished script execution or a default frame render.
<JobStatus> | Returns the current status of the job as text.

## Variables - RR

<AdditionalCommandlineParam> | You can set additional commandline flags for a job at the submitter
<Exe> | ´The Executable you have set at the client for this render application. Note: You can hardcode the exe, but then you loose the auto version change.
<rrExeBaseDir> | The base directrory of the render application. e.g. C:\Program Files\Side Effects Software\Houdini 20.5.332
<rrExeOS> <rrExeOSversion> | The operating system the render application runs on and its version. rrExeOS values are "win", "lx" or "mac". rrExeOSversion contains up to 3 digits. Mayor version + the first digit of the minor version.
<rrExeVer> <rrExeVer_NP> <rrExeVerMajor> <rrExeVerMinor> <rrExeVerRevision> <rrExeVerMinorRevision> <rrExeVerMinorRevision_NP> <rrExeVerMajorMinor> | Version of the render executable. Example output:
20.5.332 | rrExeVer
20.5332 | rrExeVer_NP
20 | rrExeVerMajor
5 | rrExeVerMinor
332 | rrExeVerRevision
5.332 | rrExeVerMinorRevision
5332 | rrExeVerMinorRevision_NP
20.5 | rrExeVerMajorMinor
20.5 | rrExeVerMajorMinor_Minimal
20_5 | rrExeVerMajorMinor_Minimal_US
20.5v3 | rrExeVerNuke
<rrExeVerMajorMinor_Minimal> <rrExeVerMajorMinor_Minimal_US> | If the minor version is 0, then it returns the mayor version only. Otherwise it returns mayor,minor (no revision)
<rrExeVerNuke> | Render app version in Nukes format. E.g. 15.1v5
<ClientConfigParam> | You can set additional commandline flags in the client config for each render app
<SetEnvSoft> <SetEnv_JobRenderApp> | Executes the setenv file for the render application. The setenv file used is named [RenderApp]_[Renderer], or if that file does not exists, [RenderApp]. The file names are always lowercase. Examples: RR\render_apps\_setenv\win\renderman_proserver.bat RR\render_apps\_setenv\win\softimage.bat SetEnv_JobRenderApp is used in pre-/post-scripts to get the setenv of the render application of the jobs render application, not the setenv of the script.
<ResetExitCode> | Should be called before you start the main render process
<CheckExitCode> <FN> | Must be called after the main render process. If it is not executed, the client does not know if the render was closed or successful.
<CPU <LimitCPUs> <CPU>> | Windows only: Some render application have no option to set the number of Cpus used. Execute this at the beginning, it will limit the CPUs for the whole batch file.
<Memory> | Returns the ammount of RAM of the machine minus 5GiB. Might be reduced by the rrJob setting "Restrict Memory (GB)". If the rrJob setting is smaller than the machines RAM.
<rrSharedExeDir> <rrLocalExeDir> | See Shared Executables
<rrBaseAppPath> | The base path of the render application used.
<rrLocalRoot> | ...\RR_localdata
<rrLocalTemp> | ...\RR_localdata\temp
<rrLocalRenderout> | ...\RR_localdata\renderout
<rrLocalRenderoutOrg> | The rrClient renders to ...\RR_localdata\renderout, but keeps the last few folders of the original output path. <rrLocalRenderoutOrg> is the path on the fileserver that matches the source folder for <rrLocalRenderout>.
<rrLocalRenderScripts> | ...\RR_localdata\renderscripts
<rrWebsite> | resolved path for [RR]\rrJobData
<JobFilesFolder> | Folder which stores all rrJob files (render log files, rrViewer caches, preview jpegs)
<rrRoot> | path to the Royal Render network share
<rrBin64> | resolved path for [RR]\bin\win, [RR]\bin\lx64 or [RR]\bin\mac
<App> <AppLow> | Name of the render application "low" is the name in lower case.
<AppVer> <AppVerMinor> <AppVerMinorFull> | Version of the render application as main (major) and minor version. AppVerMinorFull can contain additional points to separate the build version.
<AppRenderer> <AppRendererLow> | Name renderer. "low" is the name in lower case.
<AppRendererVersion> | Version of the renderer as string
<LocalHost> | The machine name of the client.
<LocalIP> | The IP of the machine.
<rrOS> | Contains the value "win", "lx" or "osx"
<jobBit> | x32 or x64
<Cores> <CPU> <InstanceCores> | number of cores that should be used InstanceCores is the number of cores of the machine divided by the number if instances started.
<LogFileName> | Name of the render log file used for this task.
<IsMultiInstance> | Used as switch for multi-instance jobs. E.g. <IsMultiInstance -multiparam ? -defaultparam >
<FolderVideoPreview> <FolderVideoFull> | Folders presets for the video creator post-script. Set them in rrConfig.
<rrClientThreadID> | The number of the job thread which executes this job.
<rrClientThreadIDstr> | The letter of the thread. ranges from A to H
<rrClientThread_A> <rrClientThread_B> <rrClientThread_C> <rrClientThread_D> <rrClientThread_E> <rrClientThread_F> <rrClientThread_G> <rrClientThread_H> | These values return 1 if the job thread matches. And 0 if the job thread does not match. Useful for conditional flags e.g. <rrClientThread_A -useflagX >
<cfgLicPool_Default> <cfgLicPool_Workstation> <cfgLicPool_Renderfarm> <cfgLicPool_Cloud> | These values return 1 if the flag matches the config setting of the client. And 0 if the job thread does not match. Useful for conditional flags e.g. <cfgLicPool_Workstation -UseUILicense >
<cfgPreset_Default> <cfgPreset_Workstation> <cfgPreset_Renderfarm> <cfgPreset_Cloud> <cfgPreset_WorkRenderMix> | These values return 1 if the flag matches the config setting of the client. And 0 if the job thread does not match. Useful for conditional flags e.g. <cfgPreset_Cloud -ConvertPaths >
<Gpu0> <Gpu1> <Gpu2> <Gpu3> <Gpu4> <Gpu5> <Gpu6> <Gpu7> | Returns 1 if the GPU with the specified ID is assigned to this job thread.
<GpuList> <GpuListC> | A list with all GPU IDs assigned for this render thread. Either separated by a point or a comma.
<GpuBits> | A list of all assigned GPUs as bit list. E.g. 0001001
<hasGPU> | Returns 1 if a GPU is available for this render (NVidia only with the current RR version)

## Variables - Special

<date> <date ddd, dd.MMM> | The current Date. If you use <date XXXXXXX>, then you can specify your own format for the date. Possible variables are: Expression Output d the day as number without a leading zero (1 to 31) dd the day as number with a leading zero (01 to 31) ddd the abbreviated localized day name (e.g. 'Mon' to 'Sun'). dddd the long localized day name (e.g. 'Monday' to 'Sunday'). M the month as number without a leading zero (1-12) MM the month as number with a leading zero (01-12) MMM the abbreviated localized month name (e.g. 'Jan' to 'Dec'). MMMM the long localized month name (e.g. 'January' to 'December'). yy the year as two digit number (00-99) yyyy the year as four digit number hh the hour mm the minute
<NoUNC XXXXXXX> | Windows only: replaces all UNC paths in string XXXXXXXX with drive mappings. The drive mappings have to be set in rrConfig.
<PD\\ XXXXXX> <PD/ XXXXXX> | Converts all slashes/backslashes in string XXXXXX with the one set after PD
<ESC XXXXXXX> | Escapes special characters inside the string XXXXXX. Only required if you need to use quoted strings inside quoted strings.
Your script command inside your application is: | SetRenderOutput "name_<Layer>_<Frame>";
The commandline to execute commands via commandline is: | myapp.exe -cmd "yourcommand"
So o execute your command via commandline you have to enter: All " and < need to be escaped in a commandline. | myapp.exe -cmd "SetRenderOutput \"name_\<Layer\>_\<Frame\>\";"
With <Esc XXXX> the escaping is done for you. | myapp.exe -cmd "<Esc SetRenderOutput "name_<Layer>_<Frame>";>"
<ESC_XML XXXXXXX> | Escapes special characters inside the string XXXXXX with a syntax similar to XML and html. (Side-Note: We have not been able to use the standard replacement starting with & as this is a special letter in commandlines.) Replacements:
& | ;amp;
< | ;lt;
> | ;gt;
" | ;quot;
' | ;apos;
<../> | Steps one directory up. C:\Softimage\Softimage_2010\Application\bin\setenv.bat<../> => C:\Softimage\Softimage_2010\Application\ C:\Softimage\Softimage_2010\Application\bin\setenv.bat<../><../> => C:\Softimage\Softimage_2010\
<ED> | "Erase to Directory" Used at the end of a path variable. It removes everything backwards to the last slash. C:\Softimage\Softimage_2010\Application\bin\setenv.bat<ED> => C:\Softimage\Softimage_2010\Application\bin\ C:\Softimage\Softimage_2010\Application\bin\setenv.bat<ED><ED> => C:\Softimage\Softimage_2010\Application\
<EL> <EL.> <EL\> | "Erase Letter" Deletes the last letter before this variable. If some character is specified after the EL, then the last letter is only deleted if it matches. RenderFrame_<EL> => RenderFrame RenderFrame_<EL.> => RenderFrame_ (no change as there is no . at the end) RenderFrame_<EL_> => RenderFrame RenderFolder\<EL\> => RenderFolder
<PD> <\\> </> | The first PD is replaced with the right slash type for a directory on the system. \ on windows, otherwise /. The other two are replaced with the slash type they show.
<EndsWith(strg, endStrg) TrueStrg ? FalseStrg> | If the string 'strg' ends with 'endStrg', then TrueStrg is placed in the commandline, otherwise FalseStrg. "? FalseStrg" is optional.
<Contains(strg, searchStr) TrueStrg ? FalseStrg> | If the string strg contains searchStr, then TrueStrg is placed in the commandline, otherwise FalseStrg. "? FalseStrg" is optional. Example: <Contains(<ImageExtension>, .exr) -UseExr> If the ImageExtension contains .exr, then the flag -UseExr is added to the commandline
<renderApp:3dsmax-vray TrueStrg ? FalseStrg> <renderApp:3dsmax TrueStrg ? FalseStrg> <renderApp:Maya TrueStrg ? FalseStrg> | Can be used as switch in post-scripts between the commandline part "TrueStrg" and "FalseStrg". In case the render app of the job was the app you ask for, "TrueStrg" is kept. "? FalseStrg" is optional.
<renderAppPath:Nuke> <renderAppPath:Maya> | Searches the render app settings of the client config for the App you specified. Note: This feature does not support auto-version change. It will just take whichever version you have set in rrConfig for that client.
<Replace Strg, OldStrg, NewStrg> | Searches for "OldStrg" inside "Strg" and replaces it with "NewStrg". Note: OldStrg and NewStrg must NOT contain a comma. Strg can contain any letter.
<remove RemStrg InputString> | Removes the string 'RemStrg' from InputString. Note: There is no Space between '<remove' and 'RemStrg', but at least one space after 'RemStrg'. Example: <removeMaya <Exe>> removed "Maya" from the executable path.
<SplitAfter Strg InputString> | If the InputString contains the string 'Strg', then 'Strg' and every letter before is removed. Example: <SplitAfterrender <ImageFilename>> If the output filename contains 'render', then 'render' and everything before that is removed.
<dec> | Decimal mark of the local system. Half of the world uses a period (.) is used, the other half a comma (,). Some applications (like 3dsmax) require the exact mark, otherwise they refuse to work. (most other just use a period no matter the country)
<newLine> <nL> | Adds a line break to the batch. In case you want to write two commandline in one config commandline line.
<callScript filename_base> | Example: if "filename_base" is //fileserver/share/myscript, then the results is:
Windows: | call //fileserver/share/myscript.bat
Linux: | source //fileserver/share/myscript.sh
Mac: | sourcel //fileserver/share/myscript.sh
<OsxApp Executable> | If the client is running on OSX, then the executable filename is extended to the osx executable name. Example: <OsxApp rrPythonconsole> Result Windows/Linux: rrPythonconsole Result OSX: rrPythonconsole.app/Contents/MacOS/rrPythonconsole
<lt> <gt> | These variables will be replaced with the "less than" < and "greater than" > signs. (It is not possible to use < or > directly as these signs are reserved for variable names)

## Variables - OS environment variables

Of course you could just use env vars in the format of Windows or Linux (%VarName% or ${VarName}).
But then you can never use some other OS.

Therefore you should use one of these two options for environment variables.

•Any Env variable
Your Env variable may have been set system-wide or is available at render time only (e.g. set in rrEnv files).
You have to use <OSEnv VarName>.
RR replaces it with the variable name in the format of your OS (%VarName% or ${VarName}).
Which means the commandline still uses env variables.

•System wide env variables only.
Use <VarName>.
In difference to the first solution, this one does not insert the env variable, it directly uses (hardcodes) the value itself.

Side-Note:
You may need to stop and start the background service if you add a new system env vars.