> 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/it/per-devops-e-amministratori/manage/custom-variables.md).

# Usare variabili personalizzate

Elencare, creare, aggiornare, eliminare ed esportare le variabili personalizzate di uno spazio di lavoro locale e delle sue casseforti con Devolutions CLI, da un terminale o da uno script.

Le variabili personalizzate sono valori con nome memorizzati nello spazio di lavoro o in una delle sue casseforti. Con Devolutions CLI può elencarle, impostarle da uno script ed esportarle, senza aprire Devolutions Remote Desktop Manager.

{% hint style="info" %}
Le variabili personalizzate funzionano solo con un profilo locale di Devolutions Remote Desktop Manager. Su Devolutions Cloud e Devolutions Server questi comandi indicano che lo spazio di lavoro non le supporta. Consulti [Un comando indica che lo spazio di lavoro non lo supporta](/cli/it/aiuto/troubleshooting/not-supported.md).
{% endhint %}

Questi comandi lavorano sul contesto corrente. Per usare un altro profilo locale per un solo comando, aggiunga `--context <context-name>`. Consulti [Passare da uno spazio di lavoro all’altro](/cli/it/guide/connect/switch-workspaces.md).

## Scegliere il comando giusto

<table><thead><tr><th width="260">SCELGA</th><th>CHE COSA SUCCEDE</th><th>LO USI QUANDO</th></tr></thead><tbody><tr><td><code>devo workspace variable</code></td><td>Elenca, imposta o elimina le variabili personalizzate dello spazio di lavoro corrente.</td><td>La variabile appartiene all’intero spazio di lavoro.</td></tr><tr><td><code>devo vault variable</code></td><td>Elenca, imposta o elimina le variabili personalizzate della cassaforte corrente, o della cassaforte che nomina con <code>--vault</code>.</td><td>La variabile appartiene a una cassaforte.</td></tr><tr><td><code>devo variable export</code></td><td>Scrive le variabili personalizzate di un ambito in un file JSON.</td><td>Vuole una copia delle variabili, per esempio per esaminarle o conservarle con uno script.</td></tr></tbody></table>

{% hint style="warning" %}
Le variabili personalizzate non sono segreti. `devo workspace variable list` e `devo vault variable list` mostrano ogni valore in testo in chiaro, l’output JSON di questi comandi include i valori e il file esportato li contiene. L’eccezione: una variabile il cui nome, o uno dei cui campi memorizzati, contiene `password`, `secret`, `token`, `encrypt`, `protected` o `safevalue` torna con un valore vuoto e lo stato `redacted`. Una variabile il cui valore il profilo memorizza in forma nascosta torna vuota con lo stato `unavailable`. Tenga password e chiavi nelle voci e le usi con [devo secret run](/cli/it/guide/secrets/run-with-secrets.md).
{% endhint %}

## Elencare le variabili

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

La tabella mostra nome, valore, ambito, origine e descrizione di ogni variabile. Per tenerne solo alcune, aggiunga un filtro del nome: `*` corrisponde a qualsiasi testo e `?` a un carattere, e le maiuscole non contano.

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

Senza `--vault`, `devo vault variable list` usa la cassaforte corrente. Per selezionare la cassaforte per ID, scriva `--vault id:<vault-id>` o aggiunga `--id`.

## Creare o aggiornare una variabile

`set` crea la variabile se non esiste e altrimenti la aggiorna. Il valore proviene da una variabile d’ambiente (`--value-env`) o da un file (`--value-file`), mai dalla riga di comando, quindi non finisce nella cronologia della shell. Ne usi uno dei due, non entrambi.

{% 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 %}

Per una variabile di cassaforte, usi `devo vault variable set` con le stesse opzioni, più `--vault "<vault-name>"` per scegliere una cassaforte diversa da quella corrente.

* **Nome**: solo lettere, cifre e trattini bassi. I delimitatori `$` sono facoltativi: `API_REGION` e `$API_REGION$` sono la stessa variabile. Devolutions CLI salva il nome in maiuscolo, tra segni `$`.
* **Valore da un file**: l’intero contenuto del file diventa il valore, così com’è, compresa un’interruzione di riga finale se il file ne termina con una.
* **Valore da una variabile**: la variabile d’ambiente deve esistere. Devolutions CLI si arresta se non è impostata.
* **Conferma**: senza `--yes` (o `-y`, `--confirmed`), il comando non cambia nulla e restituisce `confirmationRequired`.

## Eliminare variabili

{% hint style="danger" %}
Eliminare una variabile personalizzata non può essere annullato da Devolutions CLI. Esporti prima le variabili se potrebbe averne di nuovo bisogno.
{% endhint %}

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

Può nominare più variabili in un solo comando. Se una di esse non esiste, o un nome compare due volte, il comando non riesce e non elimina nulla. Senza `--yes` non viene eliminato nulla.

## Esportare variabili in un file

```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">OPZIONE</th><th>CHE COSA FA</th></tr></thead><tbody><tr><td><code>--scope</code></td><td>Obbligatorio. Quali variabili esportare: <code>workspace</code>, <code>vault</code>, <code>user-vault</code> o <code>option</code>.</td></tr><tr><td><code>--out-file</code></td><td>Obbligatorio. Il file JSON da scrivere. La sua cartella deve già esistere.</td></tr><tr><td><code>--name</code></td><td>Mantiene solo le variabili il cui nome corrisponde. Accetta <code>*</code> e <code>?</code>.</td></tr><tr><td><code>--vault</code>, <code>--id</code></td><td>Per gli ambiti <code>vault</code> e <code>user-vault</code>, la cassaforte da esportare. Senza di essa, la cassaforte corrente.</td></tr><tr><td><code>--force</code></td><td>Sostituisce il file se esiste già. Senza di essa, il comando si arresta.</td></tr></tbody></table>

Il file elenca ogni variabile con nome, valore, descrizione, ambito e origine. L’esportazione legge solo le variabili: non ha bisogno di `--yes` e può esportare ogni ambito, anche quelli che non può modificare da Devolutions CLI.

{% hint style="warning" %}
Il file esportato contiene i valori in testo in chiaro, tranne quelli oscurati, e, a differenza del file che scrive `devo secret inject --out-file`, Devolutions CLI non lo rende privato. Non lo committi e lo elimini quando non ne ha più bisogno.
{% endhint %}

## Buono a sapersi

* `set` e `delete` modificano solo gli ambiti `workspace` e `vault`.
* Le modifiche richiedono un database locale non crittografato. Quando il profilo non può essere modificato in modo sicuro, il comando spiega perché e non cambia nulla.
* Aggiunga `--output json` per leggere il risultato in uno script. Consulti [Leggere i risultati come JSON](/cli/it/per-devops-e-amministratori/automate/json-output.md).
* Un comando rifiutato per il tipo di spazio di lavoro: consulti [Un comando dice che lo spazio di lavoro non lo supporta](/cli/it/aiuto/troubleshooting/not-supported.md).

## Successivo

* [Manage vaults and entries](/cli/it/per-devops-e-amministratori/manage/vaults-and-entries.md)
* [Compare workspace types](/cli/it/guide/understand/workspace-types.md)
* Ogni opzione di questi comandi: [Comandi](/cli/it/riferimento/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/it/per-devops-e-amministratori/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.
