# Batch workflow commands

Tasks executed during *batch* workflows set some values using commands. To execute a command, a task should print a specifically formatted line to the standard output stream. Apolo Flow automatically scans this stream and detects commands in it.

## `set-output` command

Sets the value of a task's output that can be later accessed by other tasks using the [`needs` context](https://docs.apolo.us/index/apolo-flow-reference/workflow-syntax/batch-contexts#needs-context).

**Format:**

`::set-output name={name}::{value}`

**Example:**

```
echo "::set-output name=output_name::value of the output_name"
```

## `save-state` command

Saves some value in the `main` task of a [stateful action](https://docs.apolo.us/index/apolo-flow-reference/actions-syntax#kind-stateful-actions) that can be later accessed by other `post` using the [`state` context](https://docs.apolo.us/index/apolo-flow-reference/actions-syntax/live-actions-contexts#state-context).

**Format:**

`::save-state name={name}::{value}`

**Example:**

```
echo "::save-state name=resource_id::id of some resource"
```

## `stop-commands` command

Temporarily disables the processing of commands until an `::{end_token}::` is found in the output.

**Format:**

`::stop-commands::{end_token}`

**Example:**

```
echo "::stop-commands::this will not appear in the file"
cat some-file.txt
echo "::this will not appear in the file::"
```
