> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/es/para-devops-y-administradores/manage/custom-variables.md).

# Usar variables personalizadas

Enumerar, crear, actualizar, eliminar y exportar las variables personalizadas de un espacio de trabajo local y de sus bóvedas con Devolutions CLI, desde un terminal o un script.

Las variables personalizadas son valores con nombre almacenados en su espacio de trabajo o en una de sus bóvedas. Con Devolutions CLI puede enumerarlas, definirlas desde un script y exportarlas, sin abrir Devolutions Remote Desktop Manager.

{% hint style="info" %}
Las variables personalizadas funcionan solo con un perfil local de Devolutions Remote Desktop Manager. En Devolutions Cloud y Devolutions Server, estos comandos indican que el espacio de trabajo no las admite. Consulte [Un comando indica que el espacio de trabajo no lo admite](/cli/es/ayuda/troubleshooting/not-supported.md).
{% endhint %}

Estos comandos trabajan sobre el contexto actual. Para usar otro perfil local en un solo comando, añada `--context <context-name>`. Consulte [Cambiar entre espacios de trabajo](/cli/es/guias/connect/switch-workspaces.md).

## Elegir el comando adecuado

<table><thead><tr><th width="260">ELIJA</th><th>QUÉ OCURRE</th><th>ÚSELO CUANDO</th></tr></thead><tbody><tr><td><code>devo workspace variable</code></td><td>Enumera, establece o elimina las variables personalizadas del espacio de trabajo actual.</td><td>La variable pertenece a todo el espacio de trabajo.</td></tr><tr><td><code>devo vault variable</code></td><td>Enumera, define o elimina las variables personalizadas de la bóveda actual, o de la bóveda que nombre con <code>--vault</code>.</td><td>La variable pertenece a una bóveda.</td></tr><tr><td><code>devo variable export</code></td><td>Escribe las variables personalizadas de un ámbito en un archivo JSON.</td><td>Quiere una copia de las variables, por ejemplo para revisarlas o conservarlas con un script.</td></tr></tbody></table>

{% hint style="warning" %}
Las variables personalizadas no son secretos. `devo workspace variable list` y `devo vault variable list` muestran cada valor en texto sin formato, la salida JSON de estos comandos incluye los valores, y el archivo exportado los contiene. La excepción: una variable cuyo nombre, o uno de cuyos campos almacenados, contiene `password`, `secret`, `token`, `encrypt`, `protected` o `safevalue` vuelve con un valor vacío y el estado `redacted`. Una variable cuyo valor el perfil almacena de forma oculta vuelve vacía con el estado `unavailable`. Guarde las contraseñas y las claves en entradas, y úselas con [devo secret run](/cli/es/guias/secrets/run-with-secrets.md).
{% endhint %}

## Enumerar las variables

```bash
devo workspace variable list
devo vault variable list --vault "<vault-name>"
```

La tabla muestra el nombre, el valor, el ámbito, el origen y la descripción de cada variable. Para conservar solo algunas, añada un filtro de nombre: `*` coincide con cualquier texto y `?` con un carácter, y las mayúsculas no importan.

```bash
devo workspace variable list "API_*"
```

Sin `--vault`, `devo vault variable list` usa la bóveda actual. Para seleccionar la bóveda por identificador, escriba `--vault id:<vault-id>` o añada `--id`.

## Crear o actualizar una variable

`set` crea la variable si no existe y la actualiza en caso contrario. El valor procede de una variable de entorno (`--value-env`) o de un archivo (`--value-file`), nunca de la línea de comandos, así que no acaba en el historial de su shell. Use una de las dos, no ambas.

{% tabs %}
{% tab title="Bash" %}

```bash
export VARIABLE_VALUE='<value>'
devo workspace variable set API_REGION --value-env VARIABLE_VALUE --description "<description>" --yes
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
$env:VARIABLE_VALUE = '<value>'
devo workspace variable set API_REGION --value-env VARIABLE_VALUE --description "<description>" --yes
```

{% endtab %}
{% endtabs %}

Para una variable de bóveda, use `devo vault variable set` con las mismas opciones, más `--vault "<vault-name>"` para elegir una bóveda distinta de la actual.

* **Nombre**: solo letras, dígitos y guiones bajos. Los delimitadores `$` son opcionales: `API_REGION` y `$API_REGION$` son la misma variable. Devolutions CLI guarda el nombre en mayúsculas, entre signos `$`.
* **Valor de un archivo**: todo el contenido del archivo se convierte en el valor, tal cual, incluido un salto de línea final si el archivo termina con uno.
* **Valor de una variable**: la variable de entorno debe existir. Devolutions CLI se detiene si no está definida.
* **Confirmación**: sin `--yes` (o `-y`, `--confirmed`), el comando no cambia nada y devuelve `confirmationRequired`.

## Eliminar variables

{% hint style="danger" %}
Eliminar una variable personalizada no se puede deshacer desde Devolutions CLI. Exporte primero las variables si pudiera necesitarlas de nuevo.
{% endhint %}

```bash
devo workspace variable delete API_REGION OLD_ENDPOINT --yes
devo vault variable delete API_REGION --vault "<vault-name>" --yes
```

Puede nombrar varias variables en un solo comando. Si una de ellas no existe, o un nombre aparece dos veces, el comando falla y no elimina nada. Sin `--yes`, no se elimina nada.

## Exportar variables a un archivo

```bash
devo variable export --scope workspace --out-file variables.json
devo variable export --scope vault --vault "<vault-name>" --out-file vault-variables.json
```

<table><thead><tr><th width="200">OPCIÓN</th><th>QUÉ HACE</th></tr></thead><tbody><tr><td><code>--scope</code></td><td>Obligatorio. Qué variables exportar: <code>workspace</code>, <code>vault</code>, <code>user-vault</code> o <code>option</code>.</td></tr><tr><td><code>--out-file</code></td><td>Obligatorio. El archivo JSON que se va a escribir. Su carpeta debe existir ya.</td></tr><tr><td><code>--name</code></td><td>Conserva solo las variables cuyo nombre coincide. Acepta <code>*</code> y <code>?</code>.</td></tr><tr><td><code>--vault</code>, <code>--id</code></td><td>Para los ámbitos <code>vault</code> y <code>user-vault</code>, la bóveda que exportar. Sin ella, la bóveda actual.</td></tr><tr><td><code>--force</code></td><td>Sustituye el archivo si ya existe. Sin ella, el comando se detiene.</td></tr></tbody></table>

El archivo enumera cada variable con su nombre, su valor, su descripción, su ámbito y su origen. La exportación solo lee las variables: no necesita `--yes`, y puede exportar todos los ámbitos, incluso los que no puede cambiar desde Devolutions CLI.

{% hint style="warning" %}
El archivo exportado contiene los valores en texto sin formato, salvo los ocultos, y, a diferencia del archivo que escribe `devo secret inject --out-file`, Devolutions CLI no lo hace privado. No lo incluya en un commit, y elimínelo cuando ya no lo necesite.
{% endhint %}

## Bueno saberlo

* `set` y `delete` cambian solo los ámbitos `workspace` y `vault`.
* Los cambios necesitan una base de datos local sin cifrar. Cuando el perfil no se puede cambiar de forma segura, el comando explica por qué y no cambia nada.
* Añada `--output json` para leer el resultado en un script. Consulte [Leer los resultados como JSON](/cli/es/para-devops-y-administradores/automate/json-output.md).
* Un comando rechazado para su tipo de espacio de trabajo: consulte [Un comando dice que el espacio de trabajo no lo admite](/cli/es/ayuda/troubleshooting/not-supported.md).

## Siguiente

* [Manage vaults and entries](/cli/es/para-devops-y-administradores/manage/vaults-and-entries.md)
* [Compare workspace types](/cli/es/guias/understand/workspace-types.md)
* Cada opción de estos comandos: [Comandos](/cli/es/referencia/commands.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/es/para-devops-y-administradores/manage/custom-variables.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
