# Running in Batch Mode

The decompiler supports the **batch mode operation** with the text and GUI versions of IDA. All you need is to specify the `-Ohexrays` switch in the command line.

## Step 1: Understanding the Switch Format

All batch mode configuration is passed through a single command-line switch. The format of this switch is:

```
-Ohexrays:-option1:-option2...:outfile:func1:func2\...
```

## Step 2: Choose Your Options

Select the options relevant to your use case; all are optional.

* **`-new`** decompile only if output file does not exist
* **`-nosave`** do not save the database (idb) file after decompilation
* **`-errs`** send problematic databases to hex-rays.com
* **`-lumina`** use Lumina server
* **`-mail=my@mail.com`** your email (meaningful if **`-errs`** option is used)

The output file name can be prepended with **`+`** to append to it. If the specified file extension is invalid, **`.c`** will be used.

## Step 3: Specify Functions to Decompile

The functions to decompile can be specified by their **addresses** or **names**.

The `ALL` keyword means all non-library non-trivial functions.

**Example**:

```
idat -Ohexrays:-errs:-mail=john@mail.com:outfile:ALL -A input
```

The example above will decompile all non-library, non-trivial (having more than one instruction) functions to `outfile.c`. In the case of an error, the **.idb** file will be sent to **hex-rays.com**. The `-A` switch is necessary to avoid the initial dialog boxes.
